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...

7,901 Responses

  1. HaroldSed表示:

    Title: Guia Completo para Saques Seguros no Spin Casino
    Description: Descubra como efetuar saques seguros e eficientes no Spin Casino, incluindo dicas praticas e opcoes de suporte.
    spin cassino
    H1: Como Fazer Saques do seu Saldo no Spin Casino?
    Bem-vindo ao guia definitivo para realizar saques no Spin Casino. Este artigo e projetado para ajudar voce a navegar pelo processo de retirada de seus ganhos de forma segura e eficaz. Aqui, cobriremos as melhores praticas para garantir que suas transacoes sejam nao apenas bem-sucedidas, mas tambem protegidas, alem de explorar as varias opcoes de suporte disponiveis para qualquer assistencia que voce possa precisar.

    H2: Passo-a-Passo para Realizar Saques no Spin Casino
    H3: Acesse sua Conta
    Para iniciar o processo de saque no Spin Casino, o primeiro passo e acessar sua conta. Voce precisara entrar no site oficial do Spin Casino e clicar no botao de login. Insira seu nome de usuario e senha nos campos correspondentes. Certifique-se de que esta usando uma conexao segura para proteger suas informacoes pessoais.
    H3: Visite a Secao de Saldo
    Apos estar logado, navegue ate a secao de saldo ou caixa, geralmente acessivel atraves de um link direto na pagina inicial ou no menu de usuario. Aqui, voce podera ver o saldo disponivel em sua conta e outras informacoes financeiras relevantes.
    H3: Escolhendo o Metodo de Saque
    No Spin Casino, diversos metodos de saque estao disponiveis, incluindo cartoes de credito e debito, carteiras eletronicas, e transferencias bancarias. Escolha o metodo que mais lhe convem, levando em consideracao fatores como velocidade de transferencia, taxas aplicaveis, e a disponibilidade em sua regiao. Cada metodo tem suas proprias instrucoes e requisitos, que devem ser cuidadosamente revisados.
    H3: Insercao dos Dados Necessarios
    Depois de selecionar o metodo de saque, voce sera solicitado a fornecer os dados necessarios para processar a transacao. Isso pode incluir informacoes bancarias, detalhes da carteira eletronica ou numeros de cartao. Assegure-se de que todos os dados inseridos estao corretos para evitar atrasos ou problemas no saque. Apos preencher os campos requeridos, confirme a operacao e aguarde a notificacao de que seu pedido de saque foi recebido.
    Com esses passos, voce pode eficientemente solicitar um saque do seu saldo no Spin Casino, garantindo que seus fundos sejam transferidos de forma segura para a conta de sua escolha.
    H2: Metodos de Saque Disponiveis no Spin Casino
    H3: Cartoes de Credito e Debito
    Utilizar cartoes de credito e debito e uma das formas mais comuns e acessiveis para realizar saques no Spin Casino. Este metodo e apreciado pela sua familiaridade e pela ampla aceitacao. Ao escolher saque via cartao, geralmente, o tempo de processamento varia de 3 a 5 dias uteis. Importante verificar se ha taxas associadas e o limite minimo e maximo de saque permitido por transacao. As principais bandeiras como Visa e MasterCard sao aceitas, garantindo assim uma opcao segura e confiavel para acessar seus ganhos.
    H3: Carteiras Eletronicas
    As carteiras eletronicas, ou e-wallets, oferecem uma alternativa rapida e eficiente para saques. Opcoes populares incluem PayPal, Skrill e Neteller. Os saques atraves de e-wallets sao frequentemente processados em menos de 24 horas, tornando-os uma das opcoes mais rapidas disponiveis. Alem disso, eles oferecem um nivel extra de seguranca, pois nao exigem que voce compartilhe informacoes bancarias diretamente com o casino. Certifique-se de verificar a presenca de taxas de servico e os limites de transacao especificos para cada carteira eletronica.
    H3: Transferencias Bancarias
    Para aqueles que preferem uma abordagem mais tradicional, as transferencias bancarias sao uma opcao viavel. Este metodo e ideal para grandes saques, embora possa ter o tempo de processamento mais longo, variando de 5 a 7 dias uteis. As transferencias bancarias sao altamente seguras, sendo realizadas diretamente entre o casino e sua conta bancaria. No entanto, e essencial verificar as possiveis taxas de transferencia e os limites diarios ou mensais impostos tanto pelo Spin Casino quanto pelo seu banco.
    Esses metodos de saque no Spin Casino oferecem flexibilidade e seguranca, permitindo que voce escolha a opcao que melhor atenda as suas necessidades financeiras e preferencias pessoais.

    H2: Dicas para um Saque Eficiente e Seguro
    Para garantir que seus saques no Spin Casino sejam tanto eficientes quanto seguros, considere seguir estas dicas praticas:
    Verifique a Conta: Antes de solicitar um saque, certifique-se de que sua conta esta totalmente verificada conforme os requisitos do casino. Isso geralmente inclui a confirmacao de identidade e endereco, o que pode acelerar significativamente o processo de saque.
    Leia os Termos e Condicoes: Conhecer as politicas de saque do casino, incluindo limites de saque, taxas e tempos de processamento, pode ajuda-lo a evitar surpresas desagradaveis.
    Mantenha suas Informacoes Atualizadas: Assegure-se de que todas as informacoes em sua conta estao atualizadas, especialmente seus dados de contato e metodos de pagamento. Isso minimiza o risco de atrasos devido a dados desatualizados ou incorretos.
    Escolha o Metodo Adequado: Selecione o metodo de saque que melhor se adapta as suas necessidades, considerando fatores como velocidade, seguranca e facilidade de acesso aos fundos.
    Utilize Conexoes Seguras: Sempre acesse sua conta e realize transacoes financeiras atraves de conexoes seguras para proteger suas informacoes pessoais e financeiras.
    H2: Contato e Suporte
    O Spin Casino oferece varias opcoes para contato e suporte, garantindo que voce possa resolver qualquer questao ou problema relacionado aos seus saques de maneira rapida e eficaz:
    Chat ao Vivo: Disponivel 24/7, o chat ao vivo e a forma mais rapida de entrar em contato com o suporte. Voce pode acessar esta opcao diretamente pelo site do casino.
    E-mail: Para questoes menos urgentes ou para enviar documentos, o e-mail e uma excelente opcao. O Spin Casino geralmente responde dentro de 24 horas.
    FAQ: Antes de entrar em contato direto, vale a pena conferir a secao de Perguntas Frequentes (FAQ) no site. Esta secao cobre uma ampla gama de topicos, incluindo saques, e pode fornecer respostas imediatas as suas duvidas.
    Telefone: Alguns jogadores preferem o contato telefonico para discutir suas questoes. Verifique se ha um numero disponivel para sua regiao.
    Utilizando esses recursos de suporte, voce pode assegurar que qualquer desafio ou duvida seja resolvido de maneira eficiente, permitindo uma experiencia de jogo tranquila e agradavel no Spin Casino.
    ?? Fazer saques no Spin Casino pode ser um processo simples e seguro, desde que voce siga as diretrizes adequadas e utilize os recursos de suporte disponiveis. Lembre-se de verificar sua conta, ler atentamente os termos e condicoes, manter suas informacoes atualizadas, escolher o metodo de saque adequado e sempre usar conexoes seguras. Com essas praticas em mente, voce esta pronto para desfrutar de seus ganhos com tranquilidade e seguranca.
    FAQ:
    Quanto tempo leva para processar um saque no Spin Casino?
    Geralmente, o processamento pode levar de 24 horas a 5 dias uteis, dependendo do metodo escolhido. Carteiras eletronicas sao mais rapidas, enquanto transferencias bancarias podem demorar mais.
    Existem taxas para saques no Spin Casino?
    O Spin Casino pode aplicar taxas dependendo do metodo de saque utilizado. E crucial verificar os termos e condicoes especificos para evitar surpresas.
    Como posso garantir que meus saques sejam seguros?
    Sempre use conexoes seguras, verifique sua conta e escolha metodos de pagamento confiaveis. Alem disso, siga as diretrizes de seguranca fornecidas pelo casino.
    O que fazer se tiver problemas com meu saque?
    Nao hesite em contatar o suporte ao cliente atraves do chat ao vivo, telefone ou e-mail. Eles estao disponiveis para ajuda-lo a resolver qualquer questao rapidamente.

  2. arlennizo表示:

    Why Boot Mobility Scooters Should Be Your Next Big Obsession arlennizo

  3. The 10 Most Terrifying Things About Replace Upvc Window Handle Upvc Windows Repairs Near Me

  4. 36035372.xyz表示:

    12 Companies That Are Leading The Way In Smeg Fridge 36035372.xyz

  5. MichaelKeT表示:

    indian pharmacy: reputable indian pharmacies – indian pharmacies safe

  6. Lazreik表示:

    Здравствуйте!
    Где заказать диплом по необходимой специальности?
    Приобрести диплом о высшем образовании.
    l67697qa.beget.tech/2024/07/04/ogromnyy-assortiment-dokumentov-v-populyarnom-internet-magazine.html

  7. 15 Pinterest Boards That Are The Best Of All Time About For
    Sale Mobility Scooters Foldable Mobility Scooters For Sale

  8. 15 Best Coffee Beans 1kg Bloggers You Should Follow Best Coffee Beans 1Kg

  9. DavidHiche表示:

    pharmacy wholesalers canada: canadian online pharmacy – canadian pharmacy review

  10. CharlesDom表示:

    buying prescription drugs in mexico online mexico pharmacies prescription drugs reputable mexican pharmacies online

  11. Injury表示:

    Guide To Birth Injury Litigation: The Intermediate Guide In Birth Injury Litigation Injury

  12. Toninfurf表示:

    Leptin resistance works exactly the same way, Patel says, where the brain receptors are resistant how to buy cialis

  13. I’ve learned a lot from reading your post.구글상위노출 seo작업

  14. Dudoser.com表示:

    15 Presents For Your Main Zeus Demo Lover In Your Life ancient fortunes
    zeus demo (Dudoser.com)

  15. Cazrxar表示:

    Привет, друзья!
    Мы предлагаем документы ВУЗов, которые расположены на территории всей РФ. Можно купить качественный диплом за любой год, указав необходимую специальность и оценки за все дисциплины. Дипломы и аттестаты выпускаются на “правильной” бумаге высшего качества. Это позволяет делать настоящие дипломы, не отличимые от оригиналов. Документы заверяются необходимыми печатями и подписями.
    sonnick84.diary.ru/p222059972_vygodnye-ceny-i-idealnoe-kachestvo-zakazyvaj-dokumenty-onlajn.htm

  16. DavidHiche表示:

    mexico pharmacies prescription drugs: mexico drug stores pharmacies – buying from online mexican pharmacy

  17. Sazrqkh表示:

    Добрый день!
    Как оказалось, купить диплом кандидата наук не так уж и сложно
    opros.flybb.ru/viewtopic.php?f=2&t=545
    Окажем помощь!.

  18. Xazrilm表示:

    Здравствуйте!
    Заказать диплом любого ВУЗа
    arusak-diploms-srednee.ru/kupit-diplom-sssr В 
    Успехов в учебе!

  19. upvcwindows表示:

    10 Tell-Tale Signs You Must See To Look For A New Upvc Windows And Doors upvcwindows

  20. MichaelKeT表示:

    my canadian pharmacy review: canadian pharmacy king – pharmacy rx world canada

  21. bookmarked!!, I really like your website.

  22. Dnrtbgc表示:

    Привет, друзья!
    Приобрести документ ВУЗа вы имеете возможность у нас.
    diplomyx.com/kupit-diplom-magistra
    Успешной учебы!

  23. Edwardwhava表示:

    https://foruspharma.com/# mexican pharmaceuticals online

  24. CharlesDom表示:

    my canadian pharmacy review canadian online pharmacy pharmacy canadian

  25. DavidHiche表示:

    canadian online pharmacy: canadian pharmacy com – canadian pharmacy oxycodone

  26. Diplomi_jbEa表示:

    Привет!
    Приобрести документ о получении высшего образования вы имеете возможность у нас в Москве.
    diploms-x.com/kupit-diplom-omsk

  27. DavidHiche表示:

    canadian pharmacy oxycodone: reputable canadian online pharmacy – the canadian pharmacy

  28. cibly表示:

    Scott Law, 43, pleaded not guilty to a charge of common assault against Mr Keane relating to an incident on September 3 last year, following Arsenal’s 3-1 victory over Manchester United. Valuing a player is currently an arbitrary process where teams, players and representatives simply estimate what they are worth. Together with SciSports, FT aims to use advanced football data, current and future skill level as well as contract length and other details to create our unique internal calculation. From there we derive our own valuation for each and every player in the world’s major football competitions. Arsenal have been dealt a serious blow in their pursuit of a top transfer… Speaking to Mail Online, he said: “They’ve made a huge step forward, but at the moment they are playing with Kai Havertz up front.
    https://reidjafc739329.canariblogs.com/cricket-details-today-in-india-43043146
    When Sam Lammers left Rangers for Utrecht back in January, his career at Ibrox looked to be over after just six months. Valuing a player is currently an arbitrary process where teams, players and representatives simply estimate what they are worth. Together with SciSports, FT aims to use advanced football data, current and future skill level as well as contract length and other details to create our unique internal calculation. From there we derive our own valuation for each and every player in the world’s major football competitions. Valuing a player is currently an arbitrary process where teams, players and representatives simply estimate what they are worth. Together with SciSports, FT aims to use advanced football data, current and future skill level as well as contract length and other details to create our unique internal calculation. From there we derive our own valuation for each and every player in the world’s major football competitions.

  29. Uazrpaa表示:

    Добрый день!
    Где приобрести диплом специалиста?
    talkitter.com/create-blog/
    Удачи!

發佈留言

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