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>
The 12 Worst Types Of Accounts You Follow On Twitter mental health assessment at home (http://www.bitsdujour.com)
The 10 Most Terrifying Things About Heating Engineer In Buckingham gas safety check Buckingham
mexican pharmaceuticals online buying prescription drugs in mexico mexico drug stores pharmacies
https://www.skaterka.ru/img/pgs/?1xbet_promokod_pri_registracii_bonus.html
https://indianpharmacy.win/# best india pharmacy
Used Mobility Scooters For Sale: A Simple Definition Mobility Scooter For sale near me
10 Simple Steps To Start The Business You Want To Start Truck Accident Lawyers Business
Trucking Accident Lawyer
9 . What Your Parents Teach You About Gas Safety Checks Newport Pagnell gas safety checks Newport Pagnell
purple pharmacy mexico price list: medicine in mexico pharmacies – mexico drug stores pharmacies
https://indianpharmacy.win/# best online pharmacy india
http://mexicanpharmacy.store/# mexican border pharmacies shipping to usa
Выбор номер один – натяжные потолки в Петербурге|Скидки на натяжные потолки в СПб|Лучшие специалисты по натяжным потолкам в Петербурге|Огромный ассортимент натяжных потолков в Санкт-Петербурге|Советы по выбору натяжных потолков в Петербурге|Натяжные потолки в Петербурге для вашего уюта|Современный дизайн с натяжными потолками в Санкт-Петербурге|Идеальные потолки в Петербурге только у нас|Только проверенные потолки в Петербурге у нас|Инновационные технологии для натяжных потолков в СПб|Легко и быстро: установка натяжных потолков в СПб|Идеальный выбор: натяжные потолки в СПб|Инновации и креативность в сфере натяжных потолков в Санкт-Петербурге|Лучшие цены на натяжные потолки в СПб|Дизайнерские потолки в Петербурге: натяжные|Профессиональные консультации по выбору натяжных потолков в СПб|Комфорт и эстетика с натяжными потолками в Санкт-Петербурге|Натяжные потолки в СПб: надежность и качество|Уникальный дизайн вашего потолка: натяжные потолки в Санкт-Петербурге|Плюсы натяжных потолков в Петербурге|Натяжные потолки в СПб: современные технологии и материалы|Премиальный сервис по установке натяжных потолков в СПб|Тенденции в дизайне потолков: натяжные потолки в СПб|Оптимальный выбор: натяжные потолки в Петербурге
потолок натяжной цена за м2 под ключ https://potolki-spb-1.ru/ .
https://canadianpharmacy.win/# northwest canadian pharmacy
http://canadianpharmacy.win/# best canadian pharmacy online
http://indianpharmacy.win/# india pharmacy mail order
indian pharmacy online: indian pharmacy – best online pharmacy india
buy medicines online in india buy prescription drugs from india cheapest online pharmacy india
https://canadianpharmacy.win/# canadian pharmacy 365
https://canadianpharmacy.win/# best canadian pharmacy
safe canadian pharmacy: canada drugs online review – legitimate canadian pharmacy online
http://canadianpharmacy.win/# global pharmacy canada
https://indianpharmacy.win/# reputable indian pharmacies
best rated canadian pharmacy best canadian online pharmacy canadian pharmacy
https://mexicanpharmacy.store/# п»їbest mexican online pharmacies
10 Quick Tips About Volvo Car Key Replacement volvo xc90 remote start key fob,
elearnportal.Science,
What’s The Most Creative Thing Happening With Treadmill Folding treadmill folding treadmill
http://canadianpharmacy.win/# safe online pharmacies in canada
http://indianpharmacy.win/# indian pharmacy
Идеальное остекление для балконов в Санкт-Петербурге, предложим оптимальный вариант.
Профессиональное остекление балконов в Петербурге, по доступным ценам и с гарантией качества.
Индивидуальное остекление балконов в СПб, с учетом всех пожеланий клиента.
Надежное остекление балконов в СПб, без скрытых платежей и срочно.
Остекление балкона под ключ в СПб, со скидками и акциями.
остекление балконов недорого https://balkon-spb-1.ru/ .
medication from mexico pharmacy: buying prescription drugs in mexico – mexican drugstore online