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>
adult singles dating site
best dating websites online
dating sites without email
doxycycline other names 27 The model is characterized by increased bone resorption and increased intestinal uptake of ingested calcium, leading to elevated serum calcium levels.
Thank you! I enjoy it.
custom college essays how to write the college essay is there a website that writes essays for you
Всем рекомендую этот обменник биткоин для обмена криптовалюты в России! Процесс обмена биткоин происходит от 5 до 15 минут.
doxycycline and milk As the daughter still had the key to the house of her parents, the young man took his revenge by coming secretly into their house and by poisoning the food with arsenic.
Regards. I like it!
help with an essay essay writings online thesis writing services
doxycycline hyclate uses In another trial, oral ofloxacin was compared with parenteral agents for treating chronic osteomyelitis.
You made your position pretty clearly!.
canadian pharmacy cialis canadian online pharmacies legitimate by aarp canada prescriptions drugs
Great posts. Thanks.
best college essay ever how to write an introduction for a narrative essay rewriting services
viagra 20 mg viagra 10mg achat viagra 5mg generique
Nicely put, Cheers!
canadian pharmacies pharmacie canadienne pain meds online without doctor prescription
doxycycline for lyme disease c PRMT5 depletion significantly promotes KLF4 protein turnover.
doxycycline hyclate side effect
and Charmas, R. doxycycline dosage for uti treatment Herrera AF, Carlo- Stella C, Collins GP, Maddocks KJ, Bartlett NL, Savage KJ, et al.
gay chat avenue#1
gay chat roulette adult
free gay chat lines in nc
You actually stated it effectively.
college essay review how to write an argument essay help writing thesis
Monitor Closely 1 clarithromycin will decrease the level or effect of pyridoxine by altering intestinal flora. is doxycycline used for
Whoa lots of helpful information!
writing essays in college essays writing service top writing service
Nicely put. Thanks a lot.
pay to write an essay https://quality-essays.com/ coursework writer
adult singles
best sites online dating
online free dating service
This is nicely put! .
canada drugs direct canadian online pharmacies prescription drugs discount pharmacy online
Cheers. Numerous content.
top essay writing service https://theessayswriters.com/ the best essay writing services
Exchanger24
Great material. With thanks!
writing an autobiographical essay what is college for essay phd writers
Nicely put. Regards!
canada pharmacy online reviews canadian pharcharmy online pain meds online without doctor prescription
You said it nicely..
what is a college essay essay writing services i need a essay written
Fine write ups. Thank you.
northwest pharmaceuticals canada canadian pharmacy generic viagra generic viagra online
Great knowledge. Thank you.
how to write a good descriptive essay write my essays best website to buy essays
Reliable write ups. Cheers.
writing my essay how to write a successful essay custom writing bay
Olgun siyah sacli. By admin 3 ay önce 85 İzlenme Paylaş.
Müthiş sex türkçe porno videolar pornokadınların resimleri olgun siyah sacli ankaralı çift otelde sikişiyor izlet sadece türbanlı hatun seksi resimleri.