Java針對XML檔案的操作大集合
XML是工作上常用到的資料交換格式,會需要利用JAVA進行XML資料的新增、修改或刪除,這裡把相關的方法記錄下來。
下述範例會存取在C:\Projects\Javas\中的sample.xml檔,而檔案中已經有以下的內容:
<?xml version="1.0" encoding="utf-8"?> <root> <item> <productID>10001</productID> <productName>產品名稱1</productName> <productPrice>10</productPrice> </item> <item> <productID>10002</productID> <productName>產品名稱2</productName> <productPrice>20</productPrice> </item> <item> <productID>10003</productID> <productName>產品名稱3</productName> <productPrice>30</productPrice> </item> </root>
利用Java存取XML我選用的Library是dom4j,可參考官網的介紹,以下是JAVA存取的程式範例:
package CDIT.stanley; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.Iterator; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class dom4jXMLFullSample { //新增XML Node內容 public static String XMLAppendNode(String xmlFilePath, String productID, String productName, String productPrice){ String appendStatus = "0"; try { SAXReader reader = new SAXReader(); Document document = reader.read(xmlFilePath); Element root = document.getRootElement(); Element item = root.addElement("item"); item.addElement("productID").setText(productID); item.addElement("productName").setText(productName); item.addElement("productPrice").setText(productPrice); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("utf-8"); XMLWriter writer = new XMLWriter(new FileOutputStream(xmlFilePath),format); writer.write(document); writer.close(); appendStatus = "1"; } catch (DocumentException e) { return appendStatus; } catch (UnsupportedEncodingException e) { return appendStatus; } catch (FileNotFoundException e) { return appendStatus; } catch (IOException e) { return appendStatus; } return appendStatus; } //修改XML Node內容 public static String XMLChangeNodeValue(String xmlFilePath, String productID, String productName, String productPrice){ String updateStatus = "0"; try { SAXReader reader = new SAXReader(); Document document = reader.read(xmlFilePath); Element root = document.getRootElement(); @SuppressWarnings("rawtypes") Iterator it = root.elementIterator(); while (it.hasNext()) { Element element = (Element) it.next(); if(productID.equals(element.elementText("productID"))){ try { element.element("productName").setText(productName); element.element("productPrice").setText(productPrice); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("utf-8"); XMLWriter writer = new XMLWriter(new FileOutputStream(xmlFilePath),format); writer.write(document); writer.close(); updateStatus = "1"; } catch (IOException e) { return updateStatus; } } } return updateStatus; } catch (DocumentException e) { return updateStatus; } } //刪除XML Node public static String XMLRemoveNode(String xmlFilePath , String productID){ String removeStatus = "0"; try { SAXReader reader = new SAXReader(); Document document = reader.read(xmlFilePath); Element root = document.getRootElement(); @SuppressWarnings("rawtypes") Iterator it = root.elementIterator(); while (it.hasNext()) { Element element = (Element) it.next(); if(productID.equals(element.elementText("productID"))){ try { element.element("item"); element.detach(); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("utf-8"); XMLWriter writer = new XMLWriter(new FileOutputStream(xmlFilePath),format); writer.write(document); writer.close(); removeStatus = "1"; } catch (IOException e) { return removeStatus; } } } return removeStatus; } catch (DocumentException e) { return removeStatus; } } public static void main (String[] args){ String xmlFilePath = "C:\\Projects\\Javas\\sample.xml"; //新增 XMLAppendNode(xmlFilePath , "10004", "產品名稱4", "40"); //修改 XMLChangeNodeValue (xmlFilePath , "10001", "測試修改", "100"); //刪除 XMLRemoveNode (xmlFilePath , "10002"); } }
上述程式進行完後,會將原本的XML檔變成如下的內容:
<?xml version="1.0" encoding="utf-8"?> <root> <item> <productID>10001</productID> <productName>測試修改</productName> <productPrice>100</productPrice> </item> <item> <productID>10003</productID> <productName>產品名稱3</productName> <productPrice>30</productPrice> </item> <item> <productID>10004</productID> <productName>產品名稱4</productName> <productPrice>40</productPrice> </item> </root>
Its fantastic as your other content : D, appreciate it for posting .
pharmacy supply store near me: reliable pharmacy rx – Kemadrin
mexico drug stores pharmacies medicine in mexico pharmacies mexican mail order pharmacies
Our comic porn collections present an immersive exploration where adult content mixes with magical realms and well-known characters from animated series and games. If you’re a enthusiast of My Hero Academia, Pokemon, or Rick and Morty, you’ll surely find content entertaining on mult34.com. Our website is built for individuals who appreciate premium imagery, engaging narratives, and distinct forms of animated art.
even mendes is a bit old now but she is still smokin hot and i wanna marry her,,
https://indianpharmacy.company/# mail order pharmacy india
Если вы искали где отремонтировать сломаную технику, обратите внимание – ремонт бытовой техники в казани
Если вы искали где отремонтировать сломаную технику, обратите внимание – профи услуги
Если вы искали где отремонтировать сломаную технику, обратите внимание – ремонт бытовой техники
After study a handful of the blogs on your internet site now, we really like your technique for blogging. I bookmarked it to my bookmark internet site list and are checking back soon. Pls have a look at my web page too and let me know if you agree.
If I have writer’s block, I occasionally just create random words, and hopefully some idea will come from that. Take a pencil, or an empty Word document and just begin typing or composing words. Some thing is bound to hit you eventually. I used to just do these exercises where I did nothing but create random sentences without using punctuation. This helped my brain juices to flow, and it allowed me to create some short poems and short, short stories. Occasionally that rare moment when two words fit together perfectly to give you a great concept for a story occurs, and who knows? Maybe those two words can launch a series of books, or a series of plays, or the great American novel.
medicine in mexico pharmacies: reputable mexican pharmacies online – mexican border pharmacies shipping to usa
reputable mexican pharmacies online: mexico drug stores pharmacies – mexican pharmaceuticals online
there are textured table linens which are much better than untextured table linena’
As soon as I discovered this site I went on reddit to share some of the love with them.
medication from mexico pharmacy reputable mexican pharmacies online reputable mexican pharmacies online
Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
Мы предлагаем:сервисные центры по ремонту техники в новосибирске
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
Мы предлагаем:ремонт бытовой техники в новосибирске
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
Мы предлагаем:сервис центры бытовой техники новосибирск
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
reputable indian online pharmacy: Online medicine home delivery – indian pharmacy
https://mexicopharmacy.cheap/# buying prescription drugs in mexico online
I am extremely inspired with your writing abilities as smartly with the layout on your blog. Is this a paid subject matter or did you customize it your self? Anyway stay up the excellent quality writing, it’s uncommon to look a great blog like this one nowadays..
india online pharmacy: best india pharmacy – top 10 online pharmacy in india
Thanks for sharing your ideas. I might also like to convey that video games have been actually evolving. Modern tools and innovations have made it easier to create practical and interactive games. These types of entertainment games were not that sensible when the real concept was first being used. Just like other styles of technological innovation, video games way too have had to grow by means of many ages. This itself is testimony towards the fast growth and development of video games.
plavix pharmacy card: rite aid pharmacy benadryl – baclofen inhouse pharmacy
A powerful share, I simply given this onto a colleague who was doing a bit of analysis on this. And he the truth is purchased me breakfast as a result of I found it for him.. smile. So let me reword that: Thnx for the treat! However yeah Thnkx for spending the time to debate this, I really feel strongly about it and love reading more on this topic. If potential, as you change into expertise, would you mind updating your weblog with more particulars? It’s extremely useful for me. Big thumb up for this weblog post!
Профессиональный сервисный центр по ремонту планшетов в Москве.
Мы предлагаем: замена тачскрина на планшете цена
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Профессиональный сервисный центр по ремонту планшетов в Москве.
Мы предлагаем: отремонтировать планшет
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Cryptocurrency payments are becoming more and more mainstream as time moves. Many brokers in the forex market are part of this cryptocurrency revolution. Some brokers accept cryptocurrency payments when traders are funding their accounts. Bitcoin is a top priority for people who prefer crypto payments. One of the benefits of using Bitcoin as a mode of deposit is that it does not have cross-border restrictions. Forex & Crypto Brokers You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page. Charles Schwab is a highly trusted financial institution and multi-asset broker catering to U.S.-based and international forex traders. Schwab’s award-winning thinkorswim platform offers over 70 tradeable currency pairs alongside impressive tools, research, and education. That said, the broker’s forex offering is still largely limited to what is available on thinkorswim. Read full review
https://papa-wiki.win/index.php?title=No_deposit_bonus_forex_brokers_2024
No, forex trading isn’t illegal in India. It is legal but heavily regulated by the RBI and the SEBI. Discounted offers are only available to new members. Stock Advisor list price is $199 per year. Forex position trading involves buying a currency that you believe will rise in price over a period of months or years and looking for a relatively large gain on the position. Position traders don’t typically pay attention to day-to-day forex market volatility and instead focus on fundamental analysis of the markets and economies they are targeting. To help you know what’s happening in the forex market every day, we provide an FX Market Snapshot tool. It’s a visual guide that summarizes current market activity, allowing traders to quickly see and understand which major currencies are strong or volatile, and which currency pairs have gained or lost the most.
medication from mexico pharmacy mexican mail order pharmacies mexican border pharmacies shipping to usa