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>
neurontin 600 mg coupon neurontin canada online neurontin uk
buy zithromax online australia where to get zithromax over the counter zithromax capsules price
order doxycycline 100mg without prescription order doxycycline online buy generic doxycycline
cheap generic prednisone: prednisone 40 mg – buy prednisone online without a prescription
http://prednisoned.online/# canada pharmacy prednisone
amoxicillin 500 mg tablet: price for amoxicillin 875 mg – amoxicillin 825 mg
can i buy zithromax online: zithromax 250 mg pill – how to get zithromax over the counter
zithromax tablets: can you buy zithromax over the counter in australia – zithromax coupon
neurontin 800: neurontin 800mg – buy gabapentin
zithromax: zithromax 500mg price – zithromax tablets for sale
https://zithromaxa.store/# zithromax prescription online
В нашем мире, где диплом – это начало отличной карьеры в любой отрасли, многие ищут максимально быстрый путь получения качественного образования. Наличие документа об образовании сложно переоценить. Ведь именно он открывает дверь перед людьми, стремящимися начать трудовую деятельность или продолжить обучение в университете.
Мы предлагаем оперативно получить любой необходимый документ. Вы можете купить диплом, и это является отличным решением для человека, который не смог закончить обучение или потерял документ. Все дипломы производятся с особой тщательностью, вниманием ко всем деталям. В итоге вы сможете получить продукт, полностью соответствующий оригиналу.
Превосходство такого подхода состоит не только в том, что вы сможете максимально быстро получить свой диплом. Процесс организовывается комфортно, с профессиональной поддержкой. Начав от выбора нужного образца документа до консультаций по заполнению персональной информации и доставки по России — все под абсолютным контролем качественных специалистов.
В итоге, для тех, кто ищет быстрый способ получения необходимого документа, наша компания предлагает отличное решение. Приобрести диплом – это значит избежать долгого обучения и не теряя времени перейти к личным целям, будь то поступление в ВУЗ или начало профессиональной карьеры.
https://www.diploman-russiyan.com/
https://doxycyclinea.online/# how to buy doxycycline online
how much is generic neurontin neurontin capsules 600mg neurontin 800mg
how to order doxycycline generic doxycycline doxycycline 500mg
doxycycline hydrochloride 100mg: buy doxycycline online uk – doxycycline 100mg dogs
http://prednisoned.online/# 25 mg prednisone
order prednisone 10 mg tablet: prednisone for cheap – price for 15 prednisone
buy doxycycline online without prescription: doxycycline without prescription – doxycycline tetracycline
doxycycline tablets: online doxycycline – doxy 200
http://doxycyclinea.online/# buy generic doxycycline
15 Unquestionably Reasons To Love Find Accident Attorney Springfield Accident Attorney
http://amoxila.pro/# amoxil pharmacy
buy zithromax no prescription: purchase zithromax online – zithromax 500
В современном мире, где диплом является началом удачной карьеры в любом направлении, многие ищут максимально простой путь получения качественного образования. Наличие документа об образовании трудно переоценить. Ведь именно он открывает дверь перед людьми, стремящимися вступить в профессиональное сообщество или учиться в университете.
Предлагаем быстро получить любой необходимый документ. Вы можете купить диплом нового или старого образца, что становится удачным решением для всех, кто не смог закончить обучение, потерял документ или хочет исправить свои оценки. Все дипломы производятся аккуратно, с особым вниманием к мельчайшим нюансам. На выходе вы сможете получить полностью оригинальный документ.
Превосходство этого решения состоит не только в том, что вы сможете максимально быстро получить свой диплом. Процесс организовывается удобно, с нашей поддержкой. От выбора необходимого образца документа до грамотного заполнения персональной информации и доставки по России — все будет находиться под абсолютным контролем наших специалистов.
Всем, кто ищет быстрый способ получить требуемый документ, наша компания предлагает выгодное решение. Заказать диплом – значит избежать длительного процесса обучения и сразу переходить к личным целям: к поступлению в университет или к началу успешной карьеры.
https://www.diploman-russiyan.com/
prednisone canada pharmacy prednisone for dogs prednisone rx coupon
neurontin tablets no script neurontin cost gabapentin 300mg
amoxicillin 500mg buy online uk buy amoxicillin online cheap amoxicillin capsule 500mg price
doxycycline hyc 100mg: how to order doxycycline – doxycycline hydrochloride 100mg
amoxicillin over the counter in canada: amoxicillin generic brand – amoxicillin 500mg buy online canada