Ajuda com XPATH, como retornar todos os filhos?

0 respostas
M

Opa pessoal, não sabia aonde colocar este tópico, entao vai aki msm (caso esteja no lugar errado, favor redirecionar)

Bom, tenho o seguinte XML exemplo:
<?xml version="1.0" ?> 
- <no1 name="null">
- <no2s name="H">
  <no2 name="B" /> 
- <no3s name="ACHOU">
  <no3 id="B/C" name="C" /> 
  <no3 id="B/OK" name="OK" /> 
  <no3 id="B/BA" name="BA" /> 
- <no4s>
  <no4 id="B/C/D" name="D" /> 
  </no4s>
  </no3s>
  </no2s>
- </no1>

Então, preciso retornar todos os id de no3, mas q minha busca seja feita a partir do encontro de um nó q tenha name="H".
Para esclarecer, tenho q fazer um XPath procurando o name="H" e a partir dele, exibir todos os id de no3.
Exibir:
id="B/C"
id="B/OK"
id="B/BA"

meu código está assim
Element no1Tag = doc.getDocumentElement();
        String id = "'H'";
        NodeList no2 = XPathAPI.selectNodeList(no1Tag, "//*[@name="+id+"]");
        NodeList no3s = (NodeList) no2.item(0).getChildNodes().item(3).getChildNodes();
        	NodeList no3 = (NodeList) no3s.item(1).getAttributes().getNamedItem("id");	
        for (int i = 0; i < no3.getLength(); i++) {
            System.out.println(">: " + no3 +"\n");
        }

Ele encontra o "H" mas retorna somente 1 filho, q é o B/C, como faco para ter um FOR q me traga os outros? (ja percebi q os outros indices é item(3) e item(5), mas tenho q generalizar isso)

Abraço a todos e obrigado

Criado 9 de novembro de 2007
Respostas 0
Participantes 1