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>
Здравствуйте!
Купить диплом любого ВУЗа.
pumasoccershoesfans.com/read-blog/2160
https://canadapharmast.com/# rate canadian pharmacies
What Private Psychiatrist Near Me Experts Want You To Learn private psychiatrist Kent (rvolchansk.ru)
Здравствуйте!
Наша компания предлагает быстро и выгодно купить диплом, который выполнен на оригинальном бланке и заверен мокрыми печатями, штампами, подписями. Данный документ способен пройти лубую проверку, даже с использованием специальных приборов. Достигайте цели быстро и просто с нашим сервисом.
nvkb.ru/forum/index.php/user/101059/
Успехов в учебе!
Добрый день!
Где купить диплом по актуальной специальности?
Мы можем предложить документы ВУЗов, расположенных в любом регионе РФ. Вы сможете заказать диплом от любого заведения, за любой год, указав актуальную специальность и оценки за все дисциплины. Дипломы выпускаются на “правильной” бумаге высшего качества. Это позволяет делать настоящие дипломы, которые невозможно отличить от оригиналов. Документы будут заверены всеми требуемыми печатями и подписями.
Мы изготавливаем дипломы любой профессии по приятным тарифам.
ast-diplomy24.ru/kupit-diplom-vracha
Поможем вам всегда!
11 Ways To Completely Sabotage Your Slot Kay Mell
Привет, друзья!
Мы можем предложить документы техникумов, которые расположены на территории всей Российской Федерации. Вы имеете возможность приобрести диплом за любой год, в том числе документы старого образца СССР. Документы печатаются на бумаге высшего качества. Это позволяет делать государственные дипломы, не отличимые от оригинала. Документы заверяются всеми обязательными печатями и подписями.
andreieusebiu.net/files/file/50-%D0%BF%D1%80%D0%B8%D0%BE%D0%B1%D1%80%D0%B5%D1%82%D0%B0%D0%B5%D0%BC-%D0%B4%D0%B8%D0%BF%D0%BB%D0%BE%D0%BC-%D0%B2-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%B5-%D0%BF%D0%BE-%D0%BA%D0%BE%D0%BC%D1%84%D0%BE%D1%80%D1%82%D0%BD%D0%BE%D0%B9-%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8/
indian pharmacy online india online pharmacy indian pharmacy paypal
Привет!
Купить диплом любого университета
landik-diploms-srednee.ru/svidetelstvo-o-razvode В
Удачи!
Добрый день!
Мы предлагаем купить диплом высокого качества, который невозможно отличить от оригинального документа без использования дорогостоящего оборудования и квалифицированного специалиста.
http://www.igram.net/index.php?name=Account&op=userinfo&user_name=ydilocox
Успешной учебы!
buying prescription drugs in mexico: best online pharmacies in mexico – mexico drug stores pharmacies
Loans – Apply For Loans To Perform Your Dreams 주부 대출 (http://www.kbkrealtors.com)
Are You Tired Of Cream Sectional Sofa? 10 Sources Of Inspiration That’ll
Bring Back Your Passion 4452346.xyz
Good post! We will be linking to this great content on our site. Keep up the great writing.
Привет, друзья!
Заказать документ о получении высшего образования вы можете у нас в Москве.
diploms-x.com/kupit-diplom-omsk
Успехов в учебе!
What’s The Current Job Market For Double Glazed Repairs
Near Me Professionals? Double glazed repairs
Привет, друзья!
Где приобрести диплом по актуальной специальности?
Приобрести диплом о высшем образовании.
textualheritage.org/index.php?option=com_content&task=view&id=1067
Don’t Buy Into These “Trends” Concerning Upvc Door Handles upvc door near me
Здравствуйте!
Покупка диплома о среднем полном образовании: как избежать мошенничества?.
Купить диплом университета.
dating-making-friends.mn.co/posts/61837901
Greetings! Very helpful advice in this particular post! It is the little changes that produce the most significant changes. Thanks a lot for sharing!
Привет!
Приобрести диплом о высшем образовании
Мы можем предложить документы ВУЗов, расположенных в любом регионе России. Можно заказать диплом от любого учебного заведения, за любой год, указав необходимую специальность и оценки за все дисциплины. Дипломы и аттестаты выпускаются на “правильной” бумаге высшего качества. Это дает возможность делать государственные дипломы, не отличимые от оригинала. Документы заверяются всеми требуемыми печатями и штампами.
ekonty.com/blogs/view/58699
Будем рады вам помочь!.
Добрый день!
Купить диплом университета.
wiki.nikiforov.ru/index.php/???????_????????????_?????????:_???_??????_??????
Успехов в учебе!
pharmacies in canada that ship to the us: northern pharmacy canada – safe online pharmacies in canada
top online pharmacy india: best online pharmacy india – best online pharmacy india
Привет!
Купить диплом магистра оказалось возможно, быстрое обучение и диплом на руки
http://www.podzemie.6f.sk/profile.php?lookup=17613
Будем рады вам помочь!.
buying from online mexican pharmacy mexican online pharmacies prescription drugs mexican rx online
cost atorlip – purchase atorlip online buy bystolic pill
Credit Score Is Will No Longer An Problem With Bad Credit Unsecured Loan 다바오 와이너리 호텔
Привет!
Мы изготавливаем дипломы любых профессий по выгодным тарифам. Цена будет зависеть от выбранной специальности, года выпуска и ВУЗа. Всегда стараемся поддерживать для клиентов адекватную ценовую политику. Важно, чтобы дипломы были доступными для большого количества наших граждан.
http://www.pawsarl.es/blog/ильдус.html
http://canadapharmast.com/# canadian pharmacy world