Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Lendo as tags

Ola,

No exemplo atual, temos o seguinte:

<venda>
    <formaDePagamento>Cartao</formaDePagamento>
    <produtos>
        <produto>
            <nome>Livro de java com xml</nome>
            <preco>59.90</preco>
        </produto>
        <produto>
            <nome>Livro de jax-p</nome>
            <preco>59.90</preco>
        </produto>
        <produto>
            <nome>Livro de O.O em java</nome>
            <preco>59.90</preco>
        </produto>
    </produtos>
</venda>

E se caso tivéssemos dois preços dentro da tag produto, como no exemplo abaixo, como que poderíamos ler estas tags caso venha a ser duas ou mais tags de preço?

........
<produtos>
    <produto>
        <nome>Livro de java com xml</
            <preco>59.90</preco>
            <preco>24.90</preco>
            <preco>36.90</preco>
    </produto>
.....

Eu encontrei uma forma de ler, mas não sei se está totalmente correto, ou se poderá ter deficiencias no codigo futuramente:

public class TesteXml {

    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {

        final DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();

        try {
            final DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
            Document process = null;

            process = docBuilder.parse("src//xmltesting/testando.xml");
            process.getDocumentElement().normalize();

            System.out.println("Imprimindo a leitura do xml:");
            NodeList produtos = process.getElementsByTagName("produto");


            System.out.println("Assim funciona diferente e lê todas as tags:");

            final NodeList attributes = process.getElementsByTagName("formaDePagamento");
            final Element attributesNode = (Element) attributes.item(0);
            final String AformaDePagamento = attributesNode.getTextContent();


            System.out.println(AformaDePagamento);




        }
         finally {}
    }
}
1 resposta
solução!

Em geral você teria uma tag chamada <precos> e os preços lá dentro... mas desse jeito que você fez também é ok, mas não é usual.