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>
http://cytotec.club/# Cytotec 200mcg price
tamoxifen side effects forum tamoxifen hormone therapy raloxifene vs tamoxifen
lisinopril online usa lisinopril generic price comparison buy lisinopril online no prescription
cytotec online п»їcytotec pills online buy cytotec pills
На сегодняшний день, когда диплом – это начало удачной карьеры в любом направлении, многие ищут максимально быстрый путь получения образования. Необходимость наличия официального документа трудно переоценить. Ведь диплом открывает дверь перед каждым человеком, который собирается начать трудовую деятельность или продолжить обучение в каком-либо ВУЗе.
Мы предлагаем оперативно получить этот необходимый документ. Вы сможете заказать диплом, и это становится удачным решением для всех, кто не смог завершить образование или потерял документ. Каждый диплом изготавливается аккуратно, с максимальным вниманием к мельчайшим нюансам, чтобы на выходе получился полностью оригинальный документ.
Преимущество такого подхода состоит не только в том, что можно оперативно получить свой диплом. Процесс организовывается комфортно и легко, с нашей поддержкой. От выбора требуемого образца до консультаций по заполнению персональных данных и доставки в любое место России — все находится под абсолютным контролем наших специалистов.
Для тех, кто пытается найти быстрый способ получить необходимый документ, наша компания готова предложить выгодное решение. Заказать диплом – значит избежать продолжительного обучения и сразу переходить к своим целям, будь то поступление в университет или начало карьеры.
https://diploman-russiyan.com
http://nolvadex.life/# tamoxifen citrate
http://lisinopril.network/# best lisinopril brand
lisinopril 60 mg tablet: medication lisinopril 5 mg – lisinopril 20 mg india
http://nolvadex.life/# tamoxifen alternatives premenopausal
tamoxifen: tamoxifen – low dose tamoxifen
https://nolvadex.life/# nolvadex only pct
Cytotec 200mcg price: order cytotec online – buy cytotec over the counter
buy ciprofloxacin over the counter where can i buy cipro online ciprofloxacin over the counter
buy ciprofloxacin over the counter ciprofloxacin mail online cipro online no prescription in the usa