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>
migliori farmacie online 2024: kamagra gel – Farmacie online sicure
farmacia online piГ№ conveniente: kamagra gel – Farmacia online miglior prezzo
i haven’t been on the silicon valley but i would really love to visit that place. i bet that it is a very exciting place to visit;
Что за могущественный человек стоит за Евгением Набойченко?
Новая серия журналистского расследования о главном свидетеле обвинения по так называемому делу «Лайф-из-Гуд» – «Гермес» – «Бест Вей»
Бывший сисадмин российского сегмента платежной системы иностранной инвесткомпании «Гермес» и один из руководителей IT-службы компании «Лайф-из-Гуд» Евгений Набойченко в последний месяц буквально взорвался сообщениями всем знакомым, а также в своих социальных сетях – которые он внезапно вновь завел.
Вал сообщений и публикаций Набойченко – эмоциональная реакция на статьи и видео о нем, в которых с доказательствами в руках рассказывалось, что именно он, многократно пойманный на воровстве пьяница, наркоман и насильник, разрушил работу платежной системы компании «Гермес» в России, украл деньги клиентов и разделил со своими подельниками из правоохранительных органов. Публикации последнего времени его явно задели, а алкогольно-наркотические состояния не дают смолчать.
В сообщениях он не скрывает чувств: утверждает, что всех «поставит раком»; что он может даже убить, если понадобится. И ему за это ничего не будет – потому что за ним стоит некий могущественный человек, покровительствующий ему, с которым у него общие интересы.
Многие из этих сообщений знакомым и постов в социальных сетях Набойченко, проспавшись, стирает – но некоторые его визави сообщения сохраняют и предоставили их редакции.
Видео на видео
Набойченко записал видеообращение – видимо, в противовес обращению своей бывшей супруги, где рассказывает о том, что был якобы на дружеской ноге с создателем «Лайф-из-Гуд» Романом Василенко, в ближайшее раскроет все его секреты и расскажет все о компании «Лайф-из-Гуд».
Хотя в действительности он был функционером среднего звена, а не «топом», как пытается представить, в последние годы – только одним из руководителей IT-направления «Лайф-из-Гуд». Когда-то талантливый программист и организатор, он явно деградировал из-за развивающейся алкогольной и наркотической зависимости, а попытки ему помочь не увенчивались успехом.
Что же касается сотрудничества с «Гермесом» – это его личный контракт, хотя и полученный благодаря работе с «Лайф-из-Гуд», компанией – партнером «Гермеса» по продвижению в России, но никак не связанный с Василенко, который никогда не был ни совладельцем, ни руководителем компании «Гермес», зарегистрированной в Белизе и имеющей головной офис в Австрии.
«Мне угрожают!»
Одна из любимых тем сообщений и постов Набойченко – угрозы, которые ему приходят. Он постоянно выкладывает соответствующие сообщения – например такое.
Что за могущественный человек стоит за Евгением Набойченко?
Все эти «будь мужиком» и «уйедь и ляг на дно» выдают скорее небогатый внутренний мир Набойченко, который приписывает вымышленному оппоненту собственные характерные словечки. Никто Набойченко не боится – наоборот, его перекрестный допрос в Приморском районном суде Санкт-Петербурга, где сейчас рассматривается так называемое дело «Лайф-из-Гуд» – «Гермес» – «Бест Вей», крайне желателен для оправдания обвиняемых.
Это сам Набойченко опасается появляться в суде – потому что давно не контролирует свои состояния и голословность его утверждений будет очевидна. Будет очевидно и то, что он сам должен стать обвиняемым – это хорошо понимают и его покровители/подельники, которые сделают все для того, чтобы его допрос не состоялся по причине «угроз безопасности».
Наркоманское философствование
Параллельно с комментированием текущей ситуации Набойченко в своих недавних постах пускается в типичные для «грибных» наркоманов философские рассуждения – например, о «космической силе сознания».
А также в рассуждения о природе женской красоты – которые смотрятся особенно дико на фоне свидетельств того, что он бил свою жену Викторию и любовницу Светлану.
Кто покровитель?
Бывшая супруга Набойченко Виктория предположила, что это экс-начальник УЭБиПК питерского главка МВД. Но начальник сменился – а покровитель остался, по крайней мере по утверждению Набойченко. Этот покровитель – с Литейного?
Мы рано или поздно узнаем, кто это. Редакция предлагает ему самому выйти на нас и выступить с комментарием – почему он продолжает поддерживать этого подонка?
15 Shocking Facts About Birth Injury Case That You Didn’t Know Birth injury lawsuit
Merci à vous pour cette information. C’est toujours important de savoir ce genre d’avis.
farmacia online senza ricetta: super kamagra – farmaci senza ricetta elenco
Oh my goodness! Impressive article dude! Many thanks, However I am encountering troubles with your RSS. I don’t understand the reason why I cannot join it. Is there anyone else having similar RSS problems? Anybody who knows the answer can you kindly respond? Thanx!
Spot lets start on this write-up, I truly believe this excellent website wants far more consideration. I’ll probably be once more to study considerably more, thank you for that info.
https://cialisgenerico.life/# comprare farmaci online con ricetta
https://viagragenerico.site/# viagra prezzo farmacia 2023
Привет, друзья!
Как приобрести диплом о среднем образовании в Москве и других городах
mans-diplomxx.ru/attestat-za-9-klass
Поможем вам всегда!.
Здравствуйте!
Мы можем предложить дипломы любых профессий по приятным ценам.
rushkas-diploms.ru/diplom-tekhnikuma-kolledzha
This blog was… how do I say it? Relevant!! Finally I’ve found something which helped me. Thanks a lot!
Привет!
Приобрести документ института можно в нашем сервисе.
diploms-rushkas.ru
Здравствуйте!
Покупка школьного аттестата с упрощенной программой: что важно знать
diploms-rushkas.ru/kupit-diplom-vracha
10 Erroneous Answers To Common Luton Double Glazing Questions Do
You Know The Right Answers? replacement double glazed glass
only near me (Zenaida)
Farmacie on line spedizione gratuita: Farmacie on line spedizione gratuita – Farmacie online sicure
Привет, друзья!
Приобрести диплом ВУЗа.
mans-diplomy.ru/kupit-diplom-ryazan
farmacia online piГ№ conveniente: kamagra gel prezzo – comprare farmaci online all’estero
Привет!
Покупка диплома о среднем полном образовании: как избежать мошенничества?
rushkadiplomik.ru
farmacie online sicure: Farmacie che vendono Cialis senza ricetta – Farmacia online piГ№ conveniente
I have discovered that smart real estate agents all over the place are getting set to FSBO Advertising and marketing. They are acknowledging that it’s more than merely placing a sign post in the front area. It’s really regarding building relationships with these retailers who later will become consumers. So, when you give your time and energy to encouraging these retailers go it alone – the “Law associated with Reciprocity” kicks in. Good blog post.
dog grooming is the specialty of my sister, she really loves grooming every dog in our house”
The Notebook is of course one of Nick Sparks best tear jearker novel. Nick is really very talented guy;
5 Killer Quora Answers On Window Repair Near Me window repair near me
farmaci senza ricetta elenco: Farmacie online sicure – Farmacia online miglior prezzo
The 9 Things Your Parents Taught You About Vacuum Mop Robot Cleaner
Vacuum Mop robot Cleaner
Howdy! This blog post couldn’t be written much better! Reading through this post reminds me of my previous roommate! He always kept preaching about this. I am going to forward this article to him. Pretty sure he’s going to have a great read. Thank you for sharing!
https://farmait.store/# acquisto farmaci con ricetta