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>
ver 1662467144 all 576px 1199px gethuge1 buy cialis 5mg
lyrica order can i get lyrica no prescription how to get lyrica for sale
гурзуфский санаторий купить путевку на 2021 год комплекс беларусь на красной поляне
ханский дворец режим работы green flow роза хутор аура ульяновск гостиница
официальный сайт ялта интурист в крыму на камушках белокуриха гостиница пит стоп оренбург
bitcoin prime canada bitcoin up bitcoin up app
Increased COX2 activity and expression have long been implicated in colonic and breast cancer non prescription cialis online pharmacy Am J Respir Crit Care Med 1995; 152 2138 2143
Fortunately, she went off shift before I left Recovery and went upstairs to be hospitalized buy cialis with paypal
You could also try supplementing your diet with MCT oil which is best ways to lower my blood sugar best ways to lower my blood sugar a more potent extraction from coconut How To Prevent Diabetes icd10 code for low blood sugar oil cialis viagra combo pack
bitcoin up bitcoin up bitcoin
generic cialis vs cialis All subjects were postmenopausal, defined as cessation of menstruation at least 1 y before enrollment and follicle stimulating hormone concentration 35 Ојg L
гостиница севастополь адрес санаторий матери и ребенка
грейс калифорния отели в адлере с бассейном и кухней отель аметист апатиты
санаторий в анапе родник новогодний тур в железноводск гостевой дом круиз анапа крепостная 15а
pay you to write my essay
cheap law essay writing service
best rated essay writing service
фрегат отдых санаторий урология
дома отдыха в крыму недорого с детьми гостиница севастополь цены отель южно сахалинск
сочи бархатные сезоны екатерининский квартал боярский двор ростов великий официальный сайт астра центр евпатория
исланд виладж самара эко турбаза отель палисад вологда
отель флагман усть кут экскурсии на алтай в августе отель бридж резорт адлер вакансии
berta spa village гвоздика бийск гостиница санатории с кэшбэком
отель анастасия спб сясьские рядки
гостиница рамада ростов на дону железноводск галерея анапа отель дача del sol
курорт в краснодаре музей коровина в гурзуфе ля мезон омск гостиница
can i order pregabalin without a prescription how to buy cheap lyrica get cheap lyrica
On this site all known monedigo and very good and trust!
custom essay writing service reviews
community service essays
buy essay papers online
Hello2. And Bye2.
do my essay for cheap
best custom essay site
do my essay for cheap
Studies have demonstrated that О± B crystallin is the most abundantly expressed stress protein in the heart, and its production is induced by agents that promote the disassembly of microtubules lasix drug
On this site u can buy all known monedigo for very good price!
And these spiritual powers of heaven and earth entered the alchemy furnace, constantly nourishing the alchemy furnace can lasix be crushed
lasix price Table 4 Summary of Mean CV a Dexrazoxane Pharmacokinetic Parameters at a Dosage Ratio of 10 1 of Dexrazoxane Doxorubicin
where to get generic lyrica price cheap lyrica pill lyrica medication
Syrjala heartily agrees lasix pronunciation
medical school essay help
custom essays toronto
customer service essays
They function as end arteries and feed a capillary bed consisting of small capillaries 7 Ојm with tight endothelial junctions lasix contraindications Both drugs created difficulties for me
16 It is also used in tablet form as a drug to treat hypertension how to deal with a dog on lasix All TEAEs in the buparlisib group and 93
Ernie vmCcHaFTBcJBvfVgLfi 6 4 2022 what does lasix do to the body
service learning reflection essay
essay help service
help me to write an essay