• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Gjob83

Alterar tag XML [Resolvido]

4 mensagens neste tópico

Boas!

Alguem me poderia dizer como posso alterar uma tag num ficheiro XML e depois guardar a alteração?

Tipo isto:

<?xml version="1.0" encoding="iso-8859-1"?>

<STBConfig>

    <StandAloneUnit>true</StandAloneUnit>

</STBConfig>

Alterar o StandAlone de true para false

<?xml version="1.0" encoding="iso-8859-1"?>

<STBConfig>

    <StandAloneUnit>false</StandAloneUnit>

</STBConfig>

   

Desde já obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom isso varia com muitas coisas, como queres ler o ficheiros, como queres trabalhar com ele, existem montes de mecanismos para isso, DOM, SAX, STAX e sei lá que mais.

Não me perguntes qual o melhor que também ainda não sei lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já resolvi. Obrigado ao Rui Carlos e ao magician.

Aqui fica o código para quem precisar.

import java.io.File;
import java.io.FileWriter;
import java.io.StringWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;


public class Parse {

public void changeXMLFile(String v){

String value = v;
String tag = "StandAloneUnit";
String fileName = "d:\\XMLFile.xml";

try{

	DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
	DocumentBuilder db = dbf.newDocumentBuilder();

	File file = new File(fileName);
	Document doc = db.parse(file); 

	NodeList nl1 = doc.getElementsByTagName(tag);

	System.out.println("StandAloneUnit -> old value: " + nl1.item(0).getTextContent());

	nl1.item(0).setTextContent(value);

	System.out.println("StandAloneUnit -> new value: " + nl1.item(0).getTextContent());


	Transformer transformer = TransformerFactory.newInstance().newTransformer();
	transformer.setOutputProperty(OutputKeys.INDENT, "yes");

	StreamResult result = new StreamResult(new StringWriter());
	DOMSource source = new DOMSource(doc);
	transformer.transform(source, result);

	String xmlString = result.getWriter().toString();
	System.out.println(xmlString);

        FileWriter out = new FileWriter(file);
        out.write(xmlString);
        out.close();



}
catch(Exception e){

	System.out.println("Error: "+e);
	e.printStackTrace();
} 

}


public static void main(String[] args) {

	new Parse().changeXMLFile("false");
}

}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora