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://winbear.net/
74cd785c74 jakoter
With thanks. An abundance of information.
best canadian online pharmacy mail order pharmacies canadian mail order pharmacies
who can help me write an essay
essay helper online
original essay writing service
https://fatfolder.com/
74cd785c74 jezhead
You said it wonderfully.
best custom essay writing service college essay idea what is the website that writes essays for you
Excellent info. Kudos!
how to write a controversial essay https://flowleadsua.com/ homework writing services
Cheers. An abundance of data!
viagra generic online pharmacy online drugstore pharmacy humana online pharmacy
levitra us purchase vardenafil online cheap order levitra 60 mg without prescription
pay to write my essay
sat essay writing help
professional essay writers
Что такое гибкие кабели?
Самый простой кабель – это одножильный провод с пластиковой оболочкой.
Он может гнуться и сохраняет этот изгиб – если вы не делаете это слишком часто, потому что иначе провод ломается.
Такие простые кабели используются в домашних установках.
После установки кабель остается нетронутым в течение десятилетий.
Такие твердые провода не подходят для многих других применений, где кабели должны быть гибкими и эластичными.
Здесь проводники в жилах состоят из нитей – пучков тонких проволок, которые можно сгибать миллионы раз, в зависимости от конструкции, не ломая и не теряя свойств тока или передачи данных.
Одно из самых неприятных мест для кабеля – тяговая цепь. Здесь кабели питания, сервопривода и передачи данных расположены близко друг к другу и перемещаются вперед-назад по мере работы машины.
Иногда со скоростью более пяти метров в секунду с ускорением, превышающим ускорение силы тяжести более чем в пять раз.
Кабели проложены в тяговой цепи таким образом, что они изгибаются только в одном направлении.
КГ 2х4-400
Nicely spoken truly! !
personal statement essay help essay professional writing services
Thank you! I appreciate this!
london drugs canada global pharmacy canada international pharmacies that ship to the usa
Amazing stuff, Kudos.
how to write a how to essay issues to write about in a college essay dissertation writing services
Wonderful material. Regards!
how to write an intro for an essay https://englishessayhelp.com/ essay writing services reviews
https://filescracks.net/
74cd785c74 pilgcest
essay helper app
professional essay writers review
essay helper app
Very well expressed really! .
discount prescription drug prescription drugs without prior prescription canada pharmacy no prescription
You mentioned it well.
writing a proposal essay essay writer writers wanted online
Cheers, Loads of info.
canada pharmacy online reviews buy drugs online pharmacy in canada
need help writing a essay
write my essay today
best essay website
Fantastic information. Kudos.
people write research essays in order to https://essaywriting4you.com/ custom resume writing
Awesome facts. Many thanks.
compare and contrast essay high school and college writing a good persuasive essay essay website
You said it perfectly.!
canada drugs pharmacy canadian online pharmacies legitimate by aarp pharmacy without dr prescriptions
dubbed movie download, pirates … Net pirates of the caribbean at the end of the world 2007 tamil 720p bdrip .torrent … Pirates,Of,The,Caribbean,4,Full,Movie … Torrentino.com – Download – Pirates of the Caribbean – Pirates of the Caribbean 4 free via torrent on TORRENTINO – simple and without …
Pirates of the Caribbean 4 – Pirates of the Caribbean: At World’s End [2006, Adventures, DVD9] …
Pirates of the Caribbean 4: At World’s End download torrent ” Download Pirates of the Caribbean – Pirates of …
Torrent tracker TORRENTINO – download Pirates of the Caribbean 4 – Pirates of the Caribbean : At World’s End … https://foxcracks.com/
3159f51914 jenfer
do my essay cheap
essay writing services us
college admission essay help
Cheers. I value it.
ed meds online without doctor prescription prescription price comparison pharmacy drugstore online
high level movers
Great information. With thanks.
where can i pay someone to write my essay how to write mba essays website that writes your essay for you
high level movers
Tips nicely applied..
sat essay help essay scholarships college students online dissertation writing service