2010-11-10 7 views
1

J'essaie d'obtenir le contenu textuel du premier nœud dans ce fichier XML. premier noeud (franchise) est un nœud d'élément, quand je reçois le contenu du texte, je reçois « année civile 1500 $ 1500 $ $ 3000 » au lieu d'« année civile »Obtention du contenu textuel de l'élément node de xml

<Item type="Deductible" name="Deductible" id="a">Calendar Year 
<Item type="Text" name="Individual" id="b">$1,500</Item> 
<Item type="Text" name="Individual Out-of-network" id="id_4">$1,500</Item> 
<Item type="Text" name="Family" id="c">$3,000</Item> 
<Item type="Text" name="Family Out-of-network:" id="id_5">$3,000</Item> 
</Item> 

C'est ce que je suis en train

dbuilder = dbc.newDocumentBuilder(); 
Document doc = dbuilder.parse(new InputSource(new StringReader(plan.getProvisions()))); 
NodeList nl = doc.getElementsByTagName("Item"); 
for(int i = 0 ; i < nl.getLength(); i++){ 
    if(i == row){ 
     org.w3c.dom.Element e = (org.w3c.dom.Element)nl.item(i); 
     value = e.getTextContent(); 
    } 
} 
+0

Postez le code que vous utilisez. Il semble que vous sélectionnez tous les nœuds enfants ainsi que la franchise, mais sans plus d'informations, il n'est pas possible de dire. De plus, votre exemple XML est incomplet (pas de fermeture/Déductible) –

+0

Je ne pense pas que ce soit incomplet. – yogsma

+0

Votre fichier XML est bien formé, mais vous avez un contenu mixte, c'est-à-dire l'élément Item avec le type, Deductible, contient à la fois du texte et d'autres éléments Item. Est-ce intentionnel? – corriganjc

Répondre

3

Si la balise racine est <Item type="Deductible" ... que vous pouvez faire doc.getDocumentElement().getChildNodes().item(0).getNodeValue();

Sinon, vous pouvez vérifier l'attribut type val ue pour détecter l'élément Item dans la nodelist obtenu à partir de getElementsByTagName("Item");. Je voudrais utiliser l'API Java(1.5) XPath pour sélectionner les éléments Item/@type='Deductible'.

+0

doc.getDocumentElement(). GetTextContent(); obtiendra toujours tout le texte parce que l'article avec l'attribut déductible contient les autres éléments d'article. Leur texte appartient également à l'Item [@ type = 'Deductible']. – corriganjc

+0

@corrganjc: Merci, corrigé. – khachik

Questions connexes