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>
betine com guncel giris betine betine guncel giris
Измерительные и оптические приборы nkpribor.ru
По теме печь муфельная для закалки Вы на нужном пути. Представляем огромный спектр услуг по неразрушающему контролю. Это: визуальный контроль, вихретоковый контроль, капиллярный контроль, контроль вакуумом, магнитный контроль, спектральный анализ, толщинометрия и другое. Также в продаже представлено геодезическое оборудование: геодезические GNSS приемники, контролеры для приемника, беспилотники, металлоискатели, рулетки измерительные, трассопоисковое оборудование и подобное.
order mobic 7.5mg online cheap – buy maxalt 5mg without prescription buy toradol without a prescription
Профессиональный сервисный центр по ремонту компьютероной техники в Москве.
Мы предлагаем: лучшие сервисные центры по ремонту компьютеров
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
Мы предлагаем: сервисные центры по ремонту техники в нижнем новгороде
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Excellent blog post. I certainly appreciate this website. Continue the good work!
Дом из газобетона нк18.рф
Чтобы найти строительство домов готовых участках недорого, то это к нам. Можете также найти определенный земельный участок под будущее строительство. Ознакомьтесь с лучшим предложением месяца-дом за 4900000 рублей в комплектации «продумано всё». Наша компания находится по адресу: г. Ижевск, ул. Береговая, д. 1 и ждет конкретно Вас в качестве любимых заказчиков.
Профессиональный сервисный центр по ремонту компьютероной техники в Москве.
Мы предлагаем: ремонт системного блока компьютера цена
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
betine giris betine promosyon kodu betine promosyon kodu 2024
https://gatesofolympusoyna.online/# gates of olympus demo oyna
<a href=”https://remont-kondicionerov-wik.ru”>ремонт кондиционеров с гарантией</a>
And, clubbed with the superior precision technology that is so characteristics of Tag Heuer watches these timepieces are a coveted possession for all women who appreciate quality.
This is really fascinating, You are an overly skilled blogger. Ive joined your rss feed and stay up for looking for more of your great post. Also, Ive shared your website in my social networks!
An intriguing discussion will be worth comment. I think that you need to write much more about this topic, it will not be a taboo subject but usually folks are too little to communicate in on such topics. To the next. Cheers
Хочу поделиться своим опытом ремонта телефона в этом сервисном центре. Остался очень доволен качеством работы и скоростью обслуживания. Если ищете надёжное место для ремонта, обратитесь сюда: сервисы телефонов.
Профессиональный сервисный центр по ремонту компьютероной техники в Москве.
Мы предлагаем: ремонт компьютера москва
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Хочу поделиться опытом покупки в одном интернет-магазине сантехники. Решил обновить ванную комнату и искал место, где можно найти широкий выбор раковин и ванн. Этот магазин приятно удивил своим ассортиментом и сервисом. Там есть всё: от классических чугунных ванн до современных акриловых моделей.
Если вам нужна купить узкую раковину , то это точно туда. Цены конкурентные, а качество товаров подтверждено сертификатами. Консультанты помогли с выбором, ответили на все вопросы. Доставка пришла вовремя, и установка прошла без проблем. Остался очень доволен покупкой и сервисом.
Профессиональный сервисный центр по ремонту компьютерных блоков питания в Москве.
Мы предлагаем: ремонт блоков питания corsair
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
I like this blog its a master peace ! Glad I noticed this on google .
<a href=”https://remont-kondicionerov-wik.ru”>надежный сервис ремонта кондиционеров</a>
*An interesting discussion is worth comment. I think that you should write more on this topic, it might not be a taboo subject but generally people are not enough to speak on such topics. To the next. Cheers
Spot on with this write-up, I actually assume this web site wants much more consideration. I’ll probably be once more to learn much more, thanks for that info.
сервис профи самара
https://casibom.auction/# casibom guncel giris adresi
I love reading an article that will make people think. Also, thank you for permitting me to comment.
Оформление перепланировки объектов и пространств в Москве — это важный процесс, требующий профессионального вмешательства. Наша компания предлагает услуги по созданию проектных решений и подготовке всех обязательных документов, с учетом технические акты. Мы предоставим комплексное сопровождение на всех стадиях, с начала с подготовки проекта и оканчивая его оформлением с надзорными органами.
На lavka-zabor.ru вы можете получить услугами по утверждению изменений планировки как частных объектов, так и бизнес-помещений объектов. Мы в кратчайшие сроки разработаем техническое заключение о перепланировке помещения и поможем обойти промедлений в оформлении согласований. Ввиду нашего многолетнему опыту и квалификации, оформление станет намного удобнее и оперативнее.
Хочу поделиться своим опытом ремонта телефона в этом сервисном центре. Остался очень доволен качеством работы и скоростью обслуживания. Если ищете надёжное место для ремонта, обратитесь сюда: ремонт телефонов поблизости.
Learn About Mattress Topper Single While Working From The Comfort Of
Your Home which mattress topper is best
<a href=”https://remont-kondicionerov-wik.ru”>ремонт кондиционеров</a>
Профессиональный сервисный центр по ремонту компьютерных блоков питания в Москве.
Мы предлагаем: ремонт блоков питания москва
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!