Dúvida com API DOM para XML

3 respostas
L

Olá, eu tenho um arquivo .config que está estruturado como um xml, até ai beleza.

Eu consegui abrir ele usando a API DOM mas agora não sei como fazer o que eu preciso.

Em todos os tutorias que eu vi o pessoal explica como ler e parsear um XML com a seguinte estrutura:

Lucas

Acontece que eu preciso ler e parsear em um arquivo onde ficaria assim:

Como que eu estruturo o arquivo assim?

3 Respostas

E

Você sabe o que é um “attribute” no XML? Então… você precisa procurar na documentação do DOM quais são as rotinas que lidam com “attributes”.

Em particular, não gosto de usar diretamente o DOM e trabalhar com “getChild” e outras coisas chatas.

L

Sim, o que eu preciso é setar um atributo ao elemento.

Mas não estou conseguindo nada :frowning:

L

Resolvi.

Meu código ficou assim:

public ArrayList<String> consultaXML(String arquivo) {		
		arquivo.replaceAll("/", "\\");
		ArrayList<String> conteudo = new ArrayList<String>();
		int x = 0;
		try{			
			DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
			DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
			Document doc = dBuilder.parse(arquivo);

			doc.getDocumentElement().normalize();

			Node x= doc.getElementsByTagName("x").item(0);
			if(x!= null){
				for(int i = 0; i < x.getChildNodes().getLength(); i++){
					Node addCN = x.getChildNodes().item(i);
					NamedNodeMap addAttr = addCN.getAttributes();
					if(x.getChildNodes().item(i).getNodeName() == "add"){
						Node addKey = addAttr.getNamedItem("key");
						Node valueKey = addAttr.getNamedItem("value");
						conteudo.add("key=\"" + addKey.getTextContent() + "\" value=\"" + valueKey.getTextContent() + "\"");
						x++;
					}
				}
			}
		} catch (Exception e){
			e.printStackTrace();
		}		
		return conteudo;
	}
Criado 19 de junho de 2013
Ultima resposta 25 de jun. de 2013
Respostas 3
Participantes 2