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>
A true gem in the international pharmacy sector.
https://lisinoprilpharm24.top/
Read here.
Here’s A Few Facts Concerning Assessment For Mental Health Private Mental Health Assessment Near Me
I trust them with all my medication needs.
where can i get lisinopril without a prescription
Providing international caliber services consistently.
Always ahead of the curve with global healthcare trends.
how can i get generic lisinopril prices
Everything information about medication.
Appreciate their commitment to maintaining global healthcare standards.
cost of generic cytotec pill
The children’s section is well-stocked with quality products.
What’s The Ugly Truth About Pragmatic 프라그마틱 게임
It’s The Next Big Thing In Buy German Shepherd reinrassiger deutscher schäferhund kaufen (Rod)
They have an extensive range of skincare products.
https://lisinoprilpharm24.top/
Their commitment to international standards is evident.
Learn about the side effects, dosages, and interactions.
can you get cheap clomid price
A beacon of reliability and trust.
What Is The Secret Life Of Motorcycle Driving License Kategorię A1
Always greeted with warmth and professionalism.
https://clomidpharm24.top/
Their online refill system is straightforward.
Their commitment to global excellence is unwavering.
what kind of medicine is gabapentin
Their international collaborations benefit patients immensely.
Are You Tired Of High-Quality Factory-Made Pallets? 10 Inspirational Resources To Revive Your Passion where to
get pallets (http://www.1v34.com)
Trusted by patients from all corners of the world.
can i purchase cheap clomid price
I trust them with all my medication needs.
Medicament prescribing information.
can you get cheap cytotec pill
The pharmacists always take the time to answer my questions.
Everything what you want to know about pills.
https://cipropharm24.top/
I appreciate their late hours for those unexpected needs.
They keep a broad spectrum of rare medications.
gabapentin tablet
A trusted voice in global health matters.
Their health awareness programs are game-changers.
how to buy generic clomid without rx
Read information now.
The best place for health consultations.
https://cytotecpharm24.top/
Always a seamless experience, whether ordering domestically or internationally.
They offer great recommendations on vitamins.
buy cipro without rx
Their international collaborations benefit patients immensely.
What’s The Current Job Market For Cheap Pushchairs Professionals?
cheap pushchairs
Ковры, которые добавят стиль в ваш интерьер, красивый.
Лучшие варианты ковров для вашего дома, приобретите.
Ковры ручной работы, найдите.
Ковры, которые подчеркнут вашу индивидуальность, уют.
Безопасные и яркие ковры для детской, функциональность.
Традиционные и современные ковры, выберите.
Ковры для офиса, добавьте.
Практичные варианты ковров для дома, узнайте.
Как выбрать идеальный ковер?, главные советы.
Защита от холода с помощью ковров, откройте.
Тенденции в мире ковров, следите.
Ковры для загородного дома, уникальные стили.
Ковры в интерьере: вдохновение, исследуйте.
Разнообразие стилей ковров, найдите.
Ковры для спальни, мягкие текстуры.
Качество и стиль от лучших производителей, выбирайте.
Выбор ковров для домашних любимцев, дизайны.
Теплые ковры для холодных зим, выбирайте.
Ковры для создания зонирования, функции.
стандартные размеры ковра стандартные размеры ковра .
Their global outlook is evident in their expansive services.
gabapentin for tooth extraction pain
Actual trends of drug.
Ковры, которые добавят стиль в ваш интерьер, декор.
Ковры, которые преобразят ваш интерьер, по акции.
Ковры для стильного интерьера, выбирайте.
Декорируйте пространство с помощью ковров, уют.
Ковры для игровой зоны, разнообразие.
Ковры в восточном стиле, откройте.
Эстетика ковров в офисе, профессионализм.
Неприхотливые ковры для занятых людей, свой идеальный вариант.
Советы по выбору ковра, открывайте.
Ковры для холодных полов, необходимый стиль.
Актуальные стили и дизайны ковров, декор.
Ковры для загородного дома, уникальные стили.
Как сделать ваш интерьер уникальным с коврами, узнайте.
Ковры: от классики до модерна, мир ковров.
Создайте атмосферу уюта в спальне, приятные цвета.
Премиальные ковры для вашего интерьера, инвестируйте.
Мои любимые ковры для зоолюбителей, долговечные.
Ковры, которые сохраняют тепло, уют.
Как использовать ковры для зонирования, откройте.
детские ковры https://kovry-v-moskve.ru/ .
They always have valuable advice on medication management.
buying cipro no prescription
Love their spacious and well-lit premises.
What’s The Job Market For Treadmills At Home Professionals Like?
treadmills at home (Alica)
The 9 Things Your Parents Teach You About Website Gotogel Alternatif Website Gotogel Alternatif (https://Finch-Faber-3.Blogbright.Net/10-Things-Youve-Learned-From-Kindergarden-To-Help-You-Get-Started-With-Link-Daftar-Gotogel/)
10 Situs Togel Terpercaya Tips All Experts Recommend 10 situs togel
terpercaya (Nikole)
Guide To Female ADHD Symptoms: The Intermediate Guide
On Female ADHD Symptoms female Adhd symptoms
I always feel valued and heard at this pharmacy.
can you buy generic clomid without a prescription
Trust and reliability on a global scale.