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>

You may also like...

14,071 Responses

  1. Kennethslity表示:

    https://tadalafileasybuy.com/# Tadalafil Easy Buy

  2. WilliamNop表示:

    buy generic 100mg viagra online: Generic 100mg Easy – Generic100mgEasy

  3. TerryDus表示:

    https://tadalafileasybuy.shop/# Buy Tadalafil 5mg

  4. PrestonBum表示:

    Абразивные и алмазные инструменты Klingspor
    Абразивные и алмазные инструменты торговой марки Klingspor – достойный выбор профессионалов во всех промышленных отраслях. Для поиска фирм, где можно осуществить покупку специализированных инструментов, необходимо перейти в раздел «Где купить» и выбрать свой регион. Будет представлен список адресов и телефонов компаний, реализующих товар торговой марки. Выберите из списка фирму, осуществляющую продажу абразивных материалов, алмазных дисков в Москве, Санкт-Петербурге, Новосибирске, Екатеринбурге, Нижнем-Новгороде, Казани и других городах России, чтобы сделать заказ.
    алмазная коронка м14
    Каталог абразивной и алмазной продукции Klingspor, представленный на сайте, носит информационный характер. На страницах веб-ресурса размещены полные данные о абразивных, алмазных и твердосплавных изделиях данной немецкой марки, чтобы потребитель имел представление об его технических характеристиках и конкурентных преимуществах. Тогда, прежде чем купить абразивные материалы, потребитель сможет внимательно изучить свойства продукции и решить, какой товар подойдет, а какой нет.

    АБРАЗИВНЫЕ ИНСТРУМЕНТЫ ИЗ ШЛИФОВАЛЬНОЙ ШКУРКИ
    Каталог периодически пополняется новыми товарными позициями, которые весьма быстро становятся популярными. Например, отмечается активный спрос на абразивные инструменты из шлифовальной шкурки. Они представляют собой полотно ткани (бумаги) с нанесенным на него слоем абразива. С их помощью очень легко осуществить обработку самых разных поверхностей. В частности, абразивный инструмент из шлифовальной шкурки может применяться для шлифования металлических, деревянных изделий и лакированных поверхностей. В том числе с его помощью легко выполнить зачистку ржавчины или старой краски. Как показывает практика, он отлично справляется с данной задачей. В каталоге представлено несколько образцов абразивного инструмента из шлифшкурки. Повышенной популярностью пользуются абразивные круги на бакелитовой связке, алмазные диски и разнообразные абразивные насадки на шлифмашинки. Изучите имеющееся к товару описание, найдите торгового представителя фирмы Klingspor в любом из российских регионов и оформите заказ.

    Абразивные изделия марки чрезвычайно популярны во всем Мире и все больше и больше находят почитателей в России, Белоруссии, Украине, Казахстане. География продажи в России расширяется из года в год. Уже сейчас инструменты Klingspor вы можете купить оптом и в розницу в Москве, Санкт-Петербурге, Новосибирске, Екатеринбурге, Нижнем-Новгороде, Омске, Казани и др.

    Если купить абразивы и абразивный инструмент не удается, так как не можете самостоятельно найти или выбрать подходящий товар, то, возможно, следует обратиться за консультацией. Задайте свои вопросы консультантам магазинов, и они обязательно на них ответят. Информационная база данных постоянно обновляется, что расширяет возможности при поиске нужной абразивной и алмазной продукции. Желаем вам безопасного и успешного использования абразивных изделий.

  5. GregoryJough表示:

    Generic100mgEasy: Generic100mgEasy – Generic100mgEasy

  6. pdacenter.ru – сервис по ремонту бытовой техники
    Ремонт видеокарт в Челябинске в официальном сервисном центре PDACENTER.
    Наши инженеры выполняют ремонт любой сложности по дотупным ценам!

  7. Kennethslity表示:

    http://generic100mgeasy.com/# Generic Viagra online

  8. Montebeera表示:

    buying prescription drugs from india online medicine shopping in india online medicine shopping in india

  9. Howardenace表示:

    canadian pharmacy checker: InterPharmOnline – canada pharmacy online

  10. Williszew表示:

    https://indiamedfast.shop/# online medicine shopping in india

  11. Great information. Lucky me I ran across your blog by chance (stumbleupon). I have saved as a favorite for later.

  12. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали срочный ремонт приставок xbox, можете посмотреть на сайте: ремонт приставок xbox
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  13. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт приставок xbox, можете посмотреть на сайте: ремонт приставок xbox адреса
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  14. Howardenace表示:

    canada pharmacy 24h: most trusted canadian pharmacies online – canadian pharmacy store

  15. JamesGag表示:

    mexican pharmacy online order: Mexican Pharm International – mexican pharmacy online store

  16. JamesGag表示:

    mexican drug stores online: mexican drug stores online – mexican pharmacy online

  17. Arthurhow表示:

    http://mexicanpharminter.com/# buying from online mexican pharmacy
    canadian valley pharmacy

  18. Louisjus表示:

    Noon Capital is revolutionizing real estate crowdfunding by offering secure, decentralized, and high-yield investment opportunities. Through blockchain-powered property financing, Noon Capital investment platform allows investors to participate in fractional real estate ownership, earn passive income, and diversify their portfolios with full transparency and security. Whether you’re an institutional investor or an individual seeking real estate-backed DeFi solutions, Noon Capital provides a seamless and profitable investment experience. https://noon.ad

  19. Williszew表示:

    https://indiamedfast.shop/# online medicine shopping in india

  20. Arthurhow表示:

    https://interpharmonline.shop/# canadian 24 hour pharmacy
    canada pharmacy online

  21. Louiemof表示:

    HyperDrive is transforming the way data is stored and managed through decentralized storage and blockchain hosting solutions. Built for security, scalability, and efficiency, HyperDrive enables businesses, developers, and blockchain projects to store and distribute data without relying on centralized servers. By leveraging Web3 technology and distributed networks, HyperDrive ensures reliable, censorship-resistant, and high-performance storage solutions for the digital era. https://hyperdrive.ink

  22. StephenDat表示:

    Kyros Finance is redefining the DeFi investment landscape by offering secure, scalable, and high-yield crypto solutions. With a focus on decentralized financial tools, Kyros Finance provides users with staking, lending, and automated yield farming strategies to maximize returns. Whether you’re a retail investor or an institutional participant, Kyros Finance ensures efficient, transparent, and secure access to the world of decentralized finance. https://kyros.ink

  23. pdacenter.ru – сервис по ремонту бытовой техники
    Ремонт электросамокатов в Барнауле в официальном сервисном центре PDACENTER.
    Наши инженеры выполняют ремонт любой сложности по дотупным ценам!

  24. Edwardsep表示:

    GUD Tech is at the forefront of blockchain innovation, providing secure, scalable, and efficient decentralized technology solutions. Whether you’re looking for blockchain infrastructure, smart contract development, or enterprise-grade decentralized applications, GUD Tech offers cutting-edge solutions to enhance security and efficiency. Designed for businesses and developers, GUD Tech ensures seamless integration of blockchain technology into real-world applications. https://gudchain.net

  25. Williszew表示:

    http://indiamedfast.com/# buying prescription drugs from india

  26. Howardenace表示:

    canadian pharmacy ed medications: certified canada pharmacy online – canada drugs

  27. Frankpaync表示:

    Накрутка отзывов: Этические аспекты и последствия
    В современном мире онлайн-бизнеса отзывы пользователей стали важнейшим элементом в формировании репутации компании. Они влияют на решения потенциальных клиентов и, соответственно, на доходы предприятий. Неудивительно, что некоторые компании и индивидуальные предприниматели прибегают к накрутке отзывов. Однако эта практика вызывает серьезные этические вопросы и может иметь негативные последствия.
    Накрутка отзывов
    Что такое накрутка отзывов?
    Накрутка отзывов – это процесс создания фальшивых отзывов для искусственного улучшения репутации компании или продукта. Эти отзывы могут быть положительными, чтобы повысить рейтинг, или отрицательными, чтобы понизить рейтинг конкурентов. Существуют разные способы накрутки отзывов:

    Создание фальшивых аккаунтов: Люди или боты создают множество аккаунтов на платформах отзывов и оставляют положительные комментарии.
    Купленные отзывы: Оплата реальным пользователям за публикацию положительных отзывов.
    Манипуляция реальными отзывами: Например, удаление отрицательных отзывов или искусственное выделение положительных.
    Этические последствия
    Обман потребителей: Накрутка отзывов вводит потребителей в заблуждение, заставляя их полагаться на недостоверную информацию при принятии решений о покупке.
    Недобросовестная конкуренция: Использование фальшивых отзывов для дискредитации конкурентов нарушает принципы честной конкуренции, подрывает доверие к рынку и может привести к правовым последствиям.
    Урон репутации: Когда накрутка становится явной, это может нанести серьёзный урон репутации компании. Потребители начинают воспринимать компанию как нечестную, что значительно снижает уровень доверия и лояльности.
    Правовые аспекты
    Наряду с этическими, накрутка отзывов также имеет правовые последствия. Во многих странах она рассматривается как форма мошенничества, и компании, уличенные в этой практике, могут столкнуться с штрафами и даже судебными исками. Законы, регулирующие коммерческую практику, становятся всё более строгими. Платформы отзывов также активно борются с накруткой, применяя алгоритмы, способные выявлять и блокировать фальшивые отзывы, улучшая таким образом доверие к своему контенту.

    Как избежать негативных последствий
    Честная стратегия: Компаниям следует фокусироваться на улучшении качества своих продуктов и обслуживания клиентов. Это лучший способ заслужить искренние положительные отзывы.
    Клиентская поддержка: Активная работа с реальными отзывами, даже отрицательными, способствует улучшению репутации. Ответы на замечания и жалобы демонстрируют заботу о клиентах и желание улучшаться.
    Прозрачность: Создание доверительных отношений с клиентами через прозрачные практики ведения бизнеса способствует повышению лояльности и укреплению репутации без необходимости в накрутке.
    В заключение, накрутка отзывов, хотя и может показаться эффективным способом быстрого повышения рейтинга, является неустойчивой и потенциально разрушительной практикой. Долгосрочный успех компании строится на честности, качестве и уважении к потребителям.

  28. Arthurhow表示:

    https://indiamedfast.shop/# cheapest online pharmacy india
    pharmacies in canada that ship to the us

  29. 누누티비表示:

    누누티비

  30. Montebeera表示:

    lowest prescription prices online india india online pharmacy store India Med Fast

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。