Adicionar mais nodes no XML

Ola pessoal eu estou tentando gerar um aruivo xml pelo java e ate agora sem problemas, porém o xml esta desse jeito a seguir

<?xml version="1.0" encoding="UTF-8" ?>
  • 6321 SMWTES1 American Tower 69.0 4

eu queria colocar um outro ( por exemplo) embaixo do , mas nw estou conseguindo

eu queria que o xml ficasse assim por exemplo

<?xml version="1.0" encoding="UTF-8" ?>
  • 6321 SMWTES1 American Tower 69.0 4
  • 6321 SMWTES1 American Tower 69.0 4

alguém poderia me ajudar, agradeço desde ja

[code] public void saveSearch() throws Exception {
// Create a XMLOutputFactory
XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
// Create XMLEventWriter
XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(new FileOutputStream(configFile));
// Create a EventFactory
XMLEventFactory eventFactory = XMLEventFactory.newInstance();
XMLEvent end = eventFactory.createDTD("\n");
// Create and write Start Tag
StartDocument startDocument = eventFactory.createStartDocument();
eventWriter.add(startDocument);

    // Create config open tag
    StartElement configStartElement = eventFactory.createStartElement("",
            "", "config");
    eventWriter.add(configStartElement);
    eventWriter.add(end);
    // Write the different nodes
    int i = 0;
    createNode(eventWriter, "idSite", MainScreen.idSite);
    createNode(eventWriter, "NomeSite", MainScreen.capa[1][i++]);
    createNode(eventWriter, "Owner", MainScreen.capa[1][i++]);
    createNode(eventWriter, "StructureHeight", MainScreen.capa[1][i++]);
    createNode(eventWriter, "AlturaAndar", MainScreen.capa[1][i++]);


    eventWriter.add(eventFactory.createEndElement("", "", "config"));
    eventWriter.add(end);
    eventWriter.add(eventFactory.createEndDocument());
    eventWriter.close();


}[/code]

Oi!

Não é um XML bem formado esse, cadê a tag ROOT, por exemplo?
No seu caso, seria a tag config.

Sendo assim, seriam dois XML´s e não um com duas tags ROOT. Um XML pode conter apenas uma tag ROOT, as outras podem ser repetidas N vezes.

Como sugestão, podes criar uma tag ROOT chamada configs e dentro dela você adicionar vários XML, que na realidade são várias configs, mas da forma como disse, está incorreto. Veja, o que eu quero dizer:

<?xml version="1.0" encoding="UTF-8" ?> 
<configs>

<config> 
<idSite>6321</idSite> 
<NomeSite>SMWTES1</NomeSite> 
<Owner>American Tower</Owner> 
<StructureHeight>69.0</StructureHeight> 
<AlturaAndar>4</AlturaAndar> 
</config> 

 <config> 
<idSite>6321</idSite> 
<NomeSite>SMWTES1</NomeSite> 
<Owner>American Tower</Owner> 
<StructureHeight>69.0</StructureHeight> 
<AlturaAndar>4</AlturaAndar> 
</config> 

</configs>

Percebe a diferença amigo?
Agora tens um único XML bem formado com n configurações.

Leia sobre XML.

Abraços.

entendi o que você quis dizer, estou querendo fazer exatamente isso, porém naõ estou conseguindo fazer isso no java

eu tentei criar outros StartElement configStartElement = eventFactory.createStartElement("", "", "config"); eventWriter.add(configStartElement);
mas nao consegui

[quote=DBZ]entendi o que você quis dizer, estou querendo fazer exatamente isso, porém naõ estou conseguindo fazer isso no java

eu tentei criar outros StartElement configStartElement = eventFactory.createStartElement("", "", "config"); eventWriter.add(configStartElement);
mas nao consegui[/quote]

Eu costumo usar DOM para criação de XML.
Mas tem o xStream, que é bem simples de se utilizar.

O que acontece contigo é a lógica que usa, e também terás de gerar um loop para criação das tags repetidas, no seu caso, terá apenas a tag ROOT configs e em seguida ir gerando várias tags config, respeito a endentação que deseja.

Abraços.

Obrigado por responder tão rapido nel

eu dei uma lida no DOM e no xStream, mas nao consegui achar a parte em que eles salvam os dados em um arquivo XML.
posso estar sendo meio ignorante e nw pude perceber isso mas vou tentar dar uma vasculhada mais a fundo pra ver se eles conseguem fazer isso

Caso eu consiga fazer o arquivo eu coloco a solução posteriormente aqui okz

[quote=DBZ]Obrigado por responder tão rapido nel

eu dei uma lida no DOM e no xStream, mas nao consegui achar a parte em que eles salvam os dados em um arquivo XML.
posso estar sendo meio ignorante e nw pude perceber isso mas vou tentar dar uma vasculhada mais a fundo pra ver se eles conseguem fazer isso

Caso eu consiga fazer o arquivo eu coloco a solução posteriormente aqui okz
[/quote]

Com o xStream podes até criar um Objeto que representa o seu XML e depois gerar o mesmo em seguida. Veja aqui. Sobre o DOM, você cria um Element, que adiciona a ele um Text, segue um exemplo interessante aqui.

Podes usar o que usa já, se resolve o seu problema.
Basta alterar o seu código para gerar N nodos.

Abraços.