2010-06-19 11 views
3

Je suis débutant en XML^_^XML ne peut pas obtenir la valeur du nœud enfant: C#

<a> 
<book> 
    <c> 
     <e>Val1</e> 
    </c> 
    <d>val2</d> 
</book> 
<book> 
    <c> 
     <e>Val3</e> 
    </c> 
    <d>val4</d> 
</book> 

La question est que je dois obtenir la valeur dans chaque premier j'utilise

XmlNodeList xnList = xDoc.SelectNodes("https://stackoverflow.com/a/book"); 
problème

est le nœud « c » a un enfant « e » donc je ne peux pas obtenir sa valeur comme je reçois directement du noeud « d »

foreach (XmlNode xn in xnList) 
      { 
       string Name = xn["e"].InnerText; // Can't get its value 
       string Detail = xn["d"].InnerText; 
      } 

Merci

+0

Il est pas évident ce que vous essayez de faire ... vous ne savez pas sur l'élément « c »? Pourquoi ne traverses-tu pas ça? –

+0

probablement vous devriez utiliser la propriété FirstChild –

Répondre

5

Vous devez sélectionner les sous-nœuds sous le nœud <book>:

XmlNodeList xnList = xDoc.SelectNodes("https://stackoverflow.com/a/book"); 

foreach (XmlNode xn in xnList) 
{ 
    XmlNode eNode = xn.SelectSingleNode("c/e"); 

    if(eNode != null) 
    { 
     string Name = eNode.InnerText; 
    } 
} 
Questions connexes