2011-04-07 6 views
0
<root> 
    <nodes> 
     <headnode> 
      <info>Sometext1</info> 
     </headnode> 
     <leafnode> 
      <info>sometext2</info> 
     </leafnode> 
     <leafnode> 
      <info>sometext3</info> 
     </leafnode> 
    </nodes> 

    <nodes> 
     <headnode> 
      <info>Sometext4</info> 
     </headnode> 
     <leafnode> 
      <info>sometext5</info> 
     </leafnode> 
     <leafnode> 
      <info>sometext6</info> 
     </leafnode> 
    </nodes> 
</root> 

J'ai le document ci-dessus à analyser dans le côté serveur à l'intérieur d'un JavaBean. Je dois extraire le <info> du <headnode> de chaque enfant.Analyse syntaxique XML Complexité

J'ai essayé d'analyser cela avec Java DOM, mais je ne peux pas entrer dans les sous-niveaux de l'arbre à l'aide

NodeList nList = doc.getElementsByTagName("nodes"); 

Mais je ne peux pas itérer plus bas et incapable de récupérer ... de chaque <headnode> de chaque <nodes> marque. S'il vous plaît aider.

+0

Jetez un oeil à JQuery, il a été conçu pour itérer sur les DOM. –

+0

@Richard désolé je n'ai pas mentionné que je suis en train d'analyser le document XML du côté serveur, à l'intérieur d'un Java Bean – Selvin

+1

Votre question n'est pas claire. Veuillez indiquer votre code actuel et les traces de sortie ou de pile que vous obtenez qui vous font penser que cela ne fonctionne pas. –

Répondre

1

Cela obtenir le texte <info> de tous <headnode> dans votre XML:

NodeList nodeList = doc.getElementsByTagName("headnode"); 
for (int i = 0; i < nodeList.getLength(); i++) { 
    Node node = nodeList.item(i); 
    NodeList childList = node.getChildNodes(); 
    for (int j = 0; j < childList.getLength(); j++) { 
     Node childNode = childList.item(j); 
     if (childNode.getNodeName().equals("info")) { 
      String info = childNode.getTextContent(); 
      System.out.println(info); 
     } 
    } 
}