Diciamo che ho il seguente codice XML (un esempio veloce)Utilizzando XPath per analizzare un documento XML
<rows>
<row>
<name>one</name>
</row>
<row>
<name>two</name>
</row>
</rows>
sto cercando di analizzare questo utilizzando XmlDocument e XPath (in ultima analisi, in modo da poter fare una lista di righe).
Per esempio ...
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
foreach(XmlNode row in doc.SelectNodes("//row"))
{
string rowName = row.SelectSingleNode("//name").InnerText;
}
Perché, nel mio ciclo foreach, è RowName sempre "uno"? Mi aspetto che sia "uno" nella prima iterazione e "due" nella seconda.
Sembra che // nome ottenga la prima istanza nel documento, piuttosto che la prima istanza nella riga come mi aspetterei. Dopotutto, sto chiamando il metodo sul nodo "row". Se questo è "solo come funziona", allora qualcuno può spiegare come posso cambiarlo per funzionare secondo i miei bisogni?
Grazie
come su selezionandolo da // riga/nome? funziona? – Steve