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://lisinopril.network/# lisinopril 104
http://lisinopril.network/# buying lisinopril online
buy cytotec online: buy cytotec online fast delivery – Cytotec 200mcg price
В нашем обществе, где диплом – это начало удачной карьеры в любом направлении, многие ищут максимально быстрый и простой путь получения образования. Факт наличия официального документа об образовании переоценить просто невозможно. Ведь именно диплом открывает дверь перед любым человеком, желающим начать профессиональную деятельность или продолжить обучение в высшем учебном заведении.
Предлагаем оперативно получить этот важный документ. Вы можете купить диплом старого или нового образца, и это будет отличным решением для всех, кто не смог закончить обучение, потерял документ или хочет исправить свои оценки. дипломы изготавливаются аккуратно, с особым вниманием ко всем нюансам, чтобы на выходе получился 100% оригинальный документ.
Преимущество такого решения заключается не только в том, что вы сможете максимально быстро получить диплом. Процесс организован комфортно, с профессиональной поддержкой. От выбора требуемого образца диплома до точного заполнения личной информации и доставки по России — все будет находиться под полным контролем опытных специалистов.
Для всех, кто ищет быстрый и простой способ получить необходимый документ, наша компания предлагает выгодное решение. Приобрести диплом – значит избежать длительного процесса обучения и не теряя времени переходить к достижению личных целей, будь то поступление в университет или начало удачной карьеры.
https://dlplomanrussian.com
where to buy lisinopril without prescription: purchase lisinopril online – zestoretic price
cipro for sale: ciprofloxacin 500mg buy online – cipro pharmacy
cipro 500mg best prices buy cipro online where can i buy cipro online
where can i purchase lisinopril zestril 20 mg lisinopril 25 mg
lisinopril 2.5 mg tablet lisinopril 40mg prescription cost lisinopril in usa
lopressor 100mg generic – buy generic metoprolol online brand adalat
http://lisinopril.network/# lisinopril 40 mg mexico
https://nolvadex.life/# tamoxifen hormone therapy
https://ciprofloxacin.tech/# buy cipro cheap
https://lisinopril.network/# lisinopril 20 mg canadian
В наше время, когда диплом становится началом успешной карьеры в любой отрасли, многие пытаются найти максимально простой путь получения качественного образования. Наличие официального документа об образовании переоценить попросту невозможно. Ведь диплом открывает двери перед любым человеком, который хочет вступить в профессиональное сообщество или учиться в каком-либо университете.
В данном контексте наша компания предлагает оперативно получить этот необходимый документ. Вы имеете возможность купить диплом нового или старого образца, что будет удачным решением для всех, кто не смог завершить образование, утратил документ или желает исправить плохие оценки. дипломы производятся с особой тщательностью, вниманием ко всем элементам. В результате вы сможете получить полностью оригинальный документ.
Преимущество данного подхода заключается не только в том, что вы сможете оперативно получить свой диплом. Весь процесс организован комфортно, с профессиональной поддержкой. От выбора нужного образца диплома до консультаций по заполнению персональных данных и доставки в любой регион России — все находится под абсолютным контролем опытных мастеров.
Всем, кто хочет найти оперативный способ получения требуемого документа, наша компания предлагает выгодное решение. Заказать диплом – это значит избежать продолжительного процесса обучения и сразу перейти к достижению собственных целей, будь то поступление в ВУЗ или начало карьеры.
https://dlplomanrussian.com
ciprofloxacin 500mg buy online: cipro – cipro pharmacy
cheap propecia online buy generic propecia without insurance buy generic propecia
rx lisinopril 10mg lisinopril 10 mg 12.5mg zestril pill
common side effects of tamoxifen common side effects of tamoxifen benefits of tamoxifen
lisinopril 3.125: lisinopril tab 100mg – 100 mg lisinopril
Abortion pills online: Misoprostol 200 mg buy online – cytotec abortion pill
http://cytotec.club/# buy cytotec in usa
В нашем обществе, где диплом – это начало удачной карьеры в любой отрасли, многие ищут максимально простой путь получения образования. Наличие официального документа переоценить невозможно. Ведь именно диплом открывает дверь перед всеми, кто стремится начать профессиональную деятельность или продолжить обучение в высшем учебном заведении.
Наша компания предлагает очень быстро получить любой необходимый документ. Вы можете заказать диплом, и это становится удачным решением для человека, который не смог завершить образование или потерял документ. диплом изготавливается аккуратно, с максимальным вниманием ко всем элементам, чтобы в результате получился документ, полностью соответствующий оригиналу.
Преимущество подобного решения заключается не только в том, что вы оперативно получите свой диплом. Процесс организован удобно, с профессиональной поддержкой. От выбора нужного образца до грамотного заполнения персональных данных и доставки по стране — все находится под полным контролем опытных специалистов.
Всем, кто хочет найти максимально быстрый способ получения требуемого документа, наша услуга предлагает отличное решение. Купить диплом – значит избежать долгого обучения и сразу перейти к своим целям: к поступлению в университет или к началу успешной карьеры.
https://diploman-russiyan.com
http://ciprofloxacin.tech/# ciprofloxacin generic price
http://finasteride.store/# propecia otc
lanoxin 250 mg uk – buy generic irbesartan for sale buy generic lasix online
http://ciprofloxacin.tech/# buy cipro online without prescription
tamoxifen for men tamoxifen and bone density tamoxifen breast cancer prevention
buy cytotec online fast delivery cytotec buy online usa buy cytotec over the counter
get propecia tablets: get cheap propecia without insurance – cost cheap propecia online