Question

Lorsque je tente de code comme ceci,

XPathNodeIterator it;

string selectStr = "Equipment/Group/item";
it = nav.Select(selectStr);
while (it.MoveNext())
{
    String strVal = "";
    if (it.Current.HasChildren)
    {
        strVal = it.Current.Value.ToString(); // get wrong value here. I want to get 'COM' and 'MD'
    }
}

Mon fichier Xml que ce

<Equipment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <License licenseId="" licensePath=""/>
  <Group>
    <item>
      <key>COM</key>
      <value>
        <format>10</format>
        <value>0</value>
      </value>
    </item>
    <item>
      <key>MD</key>
      <value>
        <format>20</format>
        <value>test</value>
      </value>
    </item>
.....

J'ai trouvé quand j'utiliser la méthode while pour boucler tout le fichier xml est très pratique.

Mais je ne sais pas comment établir la relation pour obtenir la valeur d'élément lorsque je définissais un XPathNodeIterator comme ci-dessus?

En fait, je besoin de lire tout le fichier Xml à l'aide de XPathNodeIterator.

Était-ce utile?

La solution

Vous devez commencer une nouvelle itérateur pour chaque sous-noeud sélectionnant uniquement les sous-éléments. XPathNodeIterator et XPath en général est plus orienté vers extraction données de xml. Si vous voulez lire le fichier XML entier, vous devriez considérer XmlReader (très rapide, en avant uniquement) ou XDocument (facile à utiliser).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top