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>
Профессиональный сервисный центр по ремонту стиральных машин с выездом на дом по Москве.
Мы предлагаем: ремонт стиральных машин в москве прайс
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
Мы предлагаем: сервис центры бытовой техники казань
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Профессиональный сервисный центр по ремонту стиральных машин с выездом на дом по Москве.
Мы предлагаем: ремонт стиральных машин в москве
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
top 10 online pharmacy in india: indian pharmacy paypal – Online medicine home delivery
order lioresal online – order feldene 20 mg pills piroxicam pills
mexican border pharmacies shipping to usa: buying prescription drugs in mexico – mexican border pharmacies shipping to usa
mexico drug stores pharmacies: mexico pharmacies prescription drugs – mexican pharmaceuticals online
Your research really makes a difference.오피
You are so cool! I don’t suppose I’ve truly read through anything like that before. So nice to find somebody with a few unique thoughts on this issue. Really.. thanks for starting this up. This website is one thing that is needed on the web, someone with some originality.
??? ??? ???? ?????? ?? ??? ??????? ????? ????? ????? ?????. ???? ???????? ?????? ?? ????? ????? ?????.
https://indianpharmacy.company/# mail order pharmacy india
Spot up with this write-up, I truly think this website requirements a lot more consideration. I’ll oftimes be again to read additional, thank you that info.
Если вы искали где отремонтировать сломаную технику, обратите внимание – ремонт бытовой техники в новосибирске
Если вы искали где отремонтировать сломаную технику, обратите внимание – техпрофи
purple pharmacy mexico price list: mexican mail order pharmacies – mexican online pharmacies prescription drugs
india pharmacy: indian pharmacy online – best online pharmacy india
Magnificent site. A lot of helpful information here. I am sending it to some friends ans also sharing in delicious. And of course, thank you in your effort!
Если вы искали где отремонтировать сломаную технику, обратите внимание – ремонт цифровой техники новосибирск
best india pharmacy buy medicines online in india india pharmacy
mexico drug stores pharmacies: medicine in mexico pharmacies – mexican pharmaceuticals online
The Top Companies Not To Be In The Local Car
Locksmith Industry car Mobile locksmith (https://g28carkeys59787.wizzardsblog.com/28477834/what-Is-car-key-locksmith-and-how-to-utilize-it)
buying prescription drugs in mexico online: medicine in mexico pharmacies – buying prescription drugs in mexico online
indian pharmacy: п»їlegitimate online pharmacies india – mail order pharmacy india
Если вы искали где отремонтировать сломаную технику, обратите внимание – ремонт бытовой техники в нижнем новгороде
Patio Door Track Repair Techniques To Simplify Your Daily Life
Patio Door Track Repair Technique Every Person Needs To Know patio Door track repair
Если вы искали где отремонтировать сломаную технику, обратите внимание – профи тех сервис нижний новгород
cheap diclofenac generic – buy nimotop generic buy nimotop without prescription
best india pharmacy indian pharmacies safe indianpharmacy com
Если вы искали где отремонтировать сломаную технику, обратите внимание – сервис центр в нижнем новгороде
https://indianpharmacy.company/# buy prescription drugs from india