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://residencehotels.com.ro
The History Of Replacement Fiat Key In 10 Milestones fiat Key Fob Programming
You’ll Never Guess This Window Replacement Near Me’s Secrets Window replacement near me – timeoftheworld.Date –
The Most Pervasive Problems With Workers Compensation Attorney workers’ Compensation lawsuits
Some genuinely interesting info , well written and broadly user genial .
Hello! I recently would choose to make a enormous thumbs up for the great information you have here for this post. We are coming back to your blog site for much more soon.
Do you mind basically if I mention two of your current writes provided that I provide credit not to mention sources returning to your blog? My web business is within the identical niche as your site and my targeted traffic will have the benefit of some of the strategies and information that you offer on this page. Please don’t hesitate to tell me if it is okay for you. Thank you!
Hi to all, because I am truly eager of reading this webpage’s post to be updated regularly. It consists of nice stuff.
86hm.ru/forum/flame/?topic_id=24930В
brgdiamond.vn/en/services-residential/В
unirun.ru/page/5/В
myanmarfootball.org/gallery/displayimage.php?album=lastup&cat=6&pos=0В
adr.my.id/read-blog/1603_%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C-%D0%B4%D0%B8%D0%BF%D0%BB%D0%BE%D0%BC-%D0%B2-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BC-%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D0%B5-%D1%80%D0%BE%D1%81%D1%81%D0%B8%D0%B8.htmlВ
What Is The Reason Land Rover Discovery 4 Key Fob Replacement Is The Right Choice For You?
land rover discovery key [Toney]
Thank you for sharing this good article. Very inspiring! (as always, btw)
What’s The Job Market For Fela Claims Railroad Employees Professionals?
Fela claims railroad employees
Hi there, I discovered your blog via Google at the same time as searching for a similar topic, your site came up, it appears great. I’ve bookmarked it in my google bookmarks.
A Look At The Myths And Facts Behind Audi Car Key replacement audi a4 key
15 Documentaries That Are Best About Private Care For Mental Health mental health assessments for
adults uk (Bonnie)
10 Misconceptions That Your Boss May Have About CSGO Most Profitable Cases
operation wildfire case (Monika)
It’s the best time to make some plans for the future and it is time to be happy. I have read this post and if I could I wish to suggest you few interesting things or tips. Perhaps you could write next articles referring to this article. I wish to read more things about it!
A Delightful Rant About Upvc Window Repairs upvc window
repairs near me – Shavonne,
How To Explain Unique Slots To Your Grandparents Video Poker Slots
See What Demo Slot Sugar Rush Tricks The Celebs Are Using Demo
Slot Sugar Rush – http://Www.Stes.Tyc.Edu.Tw,
5 Clarifications On Land-Based Slots Mobile-Friendly Slots
Classic Slots Tools To Improve Your Everyday Lifethe Only Classic Slots Trick That Every Person Should Know classic Slots
10 Things Everybody Hates About Best Accident Attorney Near
Me Accident lawyers near Me free consultation
buy griseofulvin 250 mg sale – where to buy lopid without a prescription lopid generic
В современном мире, где аттестат – это начало отличной карьеры в любой сфере, многие ищут максимально простой путь получения качественного образования. Наличие документа об образовании трудно переоценить. Ведь диплом открывает двери перед любым человеком, желающим вступить в профессиональное сообщество или продолжить обучение в высшем учебном заведении.
Мы предлагаем быстро получить этот необходимый документ. Вы можете заказать аттестат нового или старого образца, и это становится удачным решением для всех, кто не смог завершить образование или утратил документ. Аттестат изготавливается аккуратно, с максимальным вниманием ко всем деталям. В результате вы сможете получить 100% оригинальный документ.
Превосходство подобного подхода заключается не только в том, что вы сможете максимально быстро получить аттестат. Процесс организован просто и легко, с профессиональной поддержкой. От выбора нужного образца до точного заполнения персональных данных и доставки в любой регион России — все находится под полным контролем наших мастеров.
Таким образом, для тех, кто ищет максимально быстрый способ получения требуемого документа, наша компания готова предложить отличное решение. Приобрести аттестат – это значит избежать длительного обучения и не теряя времени перейти к своим целям, будь то поступление в ВУЗ или начало карьеры.
https://ediblehomegardensresort.com/index.php?do=/public/blog/view/id_119664/title_/
http://contact-polis.ru
See What 3 In One Pushchair Tricks The Celebs Are Utilizing
3 in one pushchair
You’ll Be Unable To Guess Vibrating Panty Uk’s Secrets panty
5 Laws Anybody Working In Treadmill Should Know Treadmills sale
Modern Slots Explained In Less Than 140 Characters Casino slot games
The Three Greatest Moments In Slot Updates
History top-rated Online Slots – coolpot.stream
–