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>
click here now valorant skin changer
canadian pharmacy ltd https://canadianmdpharm.com/# best canadian pharmacy
online pharmacy india
5 Clarifications Regarding Evolution Blackjack 에볼루션 무료 바카라
buying from online mexican pharmacy: purple pharmacy mexico price list – Mexican Easy Pharm
Заголовок: Оцени Удачу: Запускай на Деньги Всети в Топовом Казино!
Введение:
Пользователь ищете острых ощущений и шанса срубить приз, не оставляя из жилья? Так вам несомненно зайдет крутить на финансы в онлайн казино! Передовые решения предлагают любоваться азартными развлечениями в каждое мгновение и в удобном уголке. Оставьте о визитах в людные дома – вселенная азарта теперь у тебя близко ладонью. Подключайтесь к миллионам пользователей, которые давно похвалили удобство и многообразие онлайне казино.
Преимущества игры в онлайн казино:
Играть онлайн – есть удобно: Пользователь могли бы приступить играть на бабки в любое удобное часики, не покидая теплого дивана. Теперь ни необходимо терять секунду на переезд и следовать серьезный дресс-код. Безграничный ассортимент забав: Винтернете казино поставляют обширный ассортимент игровых сессий на любой воображаемый желание – от стандартных автоматов до увлекательных игровых забав с реальными ведущими. Вы всегда найдете найдете что-то привлекательное для тебя. Пробовать на финансы – это волнение и шанс приза: Реальные вложения сделают игру ещё более волнующей. Опасность и адреналин – это такое делает заведение таким привлекательным. Вознаграждения и акции: Винтернете заведение удивляют верных гостей хорошими вознаграждениями за аккаунт, платежи и деятельность. Используйте их, чтобы увеличить ваши вероятности на победу. Сохранность и конфиденциальность: Инновационные онлайн игорный дом используют передовые техники защиты, чтобы сохранить ваши сведения и платежи. Пользователь в состоянии запускать на финансы, ни волнуясь о сохранности. Открытость 24/7: Казино онлайн трудится круглосуточно, следовательно пользователь можете играть в произвольное подходящее для тебя время.
Как начать играть на деньги онлайн:
Определите проверенное клуб: Рассмотрите мнения, оцените наличие разрешения и удостоверьтесь в надежности предпочтительного тобой сайта. Зарегистрируйтесь: Способ создания обычно происходит лишь немного времени. Тебе потребуется нужно будет записать свои данные и одобрить профиль. Внесите счет: Подберите подходящий путь внесения и зачислите первый вложение, чтобы запустить пробовать на деньги. Определите развлечение: Исследуйте доступные забавы и выберите те, которые тебе больше нравятся. Наслаждайтесь развлечением: Получайте радость от развлечения и не учитывайте об правильном понимании к увлекательным развлечениям.
Почему стоит играть на деньги именно у нас?
Наша компания поставляем:
Очень обширный выбор развлечений от топовых разработчиков. Быстрые и простые пути пополнения и снятия капитала. Круглосуточную службу помощи, готовую помогать в любой проблеме. Хорошие вознаграждения и конкурсы для молодых и старых игроков. Новейшую технологию надежности и сохранность ваших данных.
7 Tips To Make The Most Of Your Sectional With Pull Out Bed couch sectional with
pull out bed (Jessie)
Предлагаем услуги профессиональных инженеров офицальной мастерской.
Еслли вы искали ремонт iphone 13 в москве, можете посмотреть на сайте: ремонт iphone 13 в москве
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
best canadian pharmacy online https://indiancertpharm.shop/# top 10 pharmacies in india
cheapest online pharmacy india
Предлагаем услуги профессиональных инженеров офицальной мастерской.
Еслли вы искали ремонт iphone 13 pro, можете посмотреть на сайте: срочный ремонт iphone 13 pro
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
canadian valley pharmacy: canadian neighbor pharmacy – canadian 24 hour pharmacy
important source trump cryptocurrency
additional info trump cryptocurrency
company website solrflare
Learn More
trump coins
you could try this out solfare
browse around this web-site trump coins
discover this
soflare
additional info
crypto trump
my link donald trump crypto
find out solfare
drugs from canada: CanadianMdPharm – safe online pharmacies in canada
Learn More Here solflare
More Help
solflare
this
solfare
click here to read
official trump
You Are Responsible For A SEO Consultancy London Budget? Twelve Top Ways
To Spend Your Money Seo services london
escrow pharmacy canada https://mexicaneasypharm.com/# Mexican Easy Pharm
indian pharmacies safe
Предлагаем услуги профессиональных инженеров офицальной мастерской.
Еслли вы искали ремонт iphone se 2020 рядом, можете посмотреть на сайте: ремонт iphone se 2020
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
https://indiancertpharm.com/# Online medicine
canadian pharmacy online ship to usa
canada pharmacy online legit: CanadianMdPharm – best rated canadian pharmacy