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>
https://easyrxcanada.com/# best canadian online pharmacy
https://mexstarpharma.com/# mexico pharmacies prescription drugs
Реально ли приобрести диплом стоматолога? Основные этапы
This web site truly has all the information I needed about this subject and didn’t know who to ask.
indianpharmacy com top online pharmacy india reputable indian pharmacies
canadian pharmacy king reviews canada drugs reviews canadianpharmacyworld com
The History Of Kids Triple Bunk Beds In 10 Milestones
Kids bunk Beds
Здравствуйте!
Приобрести диплом о высшем образовании.
mybaltika.info/ru/blogs/587/7850
Привет!
Приобрести документ ВУЗа
school97.ru/forum/view_profile.php?UID=204507
Привет!
Купить диплом любого университета.
telegra.ph/diplen-plenka-kupit-08-13-5
The next time I read a blog, I hope that it does not disappoint me as much as this particular one. After all, I know it was my choice to read through, however I truly thought you’d have something helpful to talk about. All I hear is a bunch of whining about something that you could fix if you were not too busy looking for attention.
How To Outsmart Your Boss On Used Mobility Scooters Near Me all terrain mobility scooter near me (Branden)
Привет!
Мы можем предложить дипломы любой профессии.
Заказ документа, который подтверждает окончание университета, – это выгодное решение.
jadegouvea.com/kupit-diplom-505952avca
Окажем помощь!.
Привет, друзья!
Купить документ о получении высшего образования можно у нас в Москве.
samara.edaki.ru/blog/blog/4112
probenecid 500 mg generic – tegretol 400mg uk cheap tegretol
Привет!
Легальная покупка школьного аттестата с упрощенной программой обучения
images.google.dk/url?sa=t&url=aurus-diploms.com
Very good post. I am experiencing a few of these issues as well..
Добрый день!
Заказать документ университета вы можете в нашем сервисе.
blog.mistifiks.ru/2015/06/mikrotik_54
Привет!
Пошаговая инструкция по официальной покупке диплома о высшем образовании
laemngophos.org/webboard/member.php?action=profile&uid=43056
Рады помочь!.
Это просто дичь какая-то! Когда я вкладывал свои деньги в кооператив ‘Бест Вей‘, даже представить не мог, что окажусь в такой заднице. Два года наши счета арестованы, деньги не вернуть, квартиры не купить. И всё это из-за каких-то продажных ментов, которые решили нагреть руки на наших деньгах! Колокольцев и его шайка ведут себя как настоящие воры, прикрываясь законами. Это просто беспредел! Мы как заложники этой ситуации – ни туда, ни сюда. Когда уже кто-то разберется с этими оборотнями в погонах? Сколько можно терпеть это беззаконие?!
Way cool! Some extremely valid points! I appreciate you penning this article and also the rest of the site is really good.
I blog often and I truly appreciate your content. The article has truly peaked my interest. I will take a note of your blog and keep checking for new information about once per week. I opted in for your RSS feed too.
Добрый день!
Приобрести документ о получении высшего образования.
Мы изготавливаем дипломы психологов, юристов, экономистов и прочих профессий по выгодным ценам.
formules.ru
Будем рады вам помочь!.
Good site you have got here.. It’s hard to find high-quality writing like yours these days. I truly appreciate people like you! Take care!!
Привет!
Диплом по специальности на выбор
frpworld.com/modules.php?name=Your_Account&op=userinfo&username=titovaong3
Здравствуйте!
Купить диплом о высшем образовании
svetilnikild.ru
Добрый день!
Диплом по специальности на выбор
telegra.ph/kupit-diplom-o-vysshem-obrazovanii-tver-08-13-4
Oh my goodness! Awesome article dude! Thank you, However I am having problems with your RSS. I don’t know why I am unable to join it. Is there anybody else having identical RSS problems? Anybody who knows the answer can you kindly respond? Thanks!
Здравствуйте!
Мы готовы предложить дипломы психологов, юристов, экономистов и других профессий по невысоким ценам.
ekaterinovka.sarat.ru/board/tools.php?event=profile&pname=minasdoNuh
Привет!
Полезные советы по безопасной покупке диплома о высшем образовании
venturetraining.net/contact