Frage

Wenn ich versuche, um Code wie diese,

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'
    }
}

Meine XML-Datei als das

<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>
.....

fand ich, wenn ich while Methode Schleife verwenden, um alle die XML-Datei ist sehr bequem.

Aber ich weiß nicht, wie die Beziehung zu etablieren Elementwert zu erhalten, wenn ich eine XPathNodeIterator wie oben definiert?

Eigentlich muss ich die ganze XML-Datei mit Hilfe von XPathNodeIterator lesen.

War es hilfreich?

Lösung

würden Sie haben einen neuen Iterator für jeden untergeordneten Knoten starten nur die Unterpunkte auswählen. XPathNodeIterator und XPath in der Regel mehr richtet sich an Extrahieren Daten aus XML. Wenn Sie die gesamte XML-Datei lesen möchten, sollten Sie XmlReader (sehr schnell, nur vorwärts) oder XDocument (leicht zu bedienen).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top