Domanda

Quando provo a codice come questo,

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

Il mio Xml File come questo

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

ho scoperto quando uso il metodo while loop tutto il file XML è molto conveniente.

Ma io non so come stabilire il rapporto per ottenere il valore elemento quando ho definito un XPathNodeIterator come sopra?

In realtà, ho bisogno di leggere l'intero file XML con l'ausilio di XPathNodeIterator.

È stato utile?

Soluzione

Si dovrebbe iniziare un nuovo iteratore per ogni sottonodo selezionando solo gli elementi secondari. XPathNodeIterator e XPath , in generale, è più orientata verso Estrazione i dati da XML. Se si desidera leggere l'intero file XML, si dovrebbe considerare XmlReader (molto veloce, solo avanti) o XDocument (facile da usare).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top