powiedzmy, że mam następujące XML (krótki przykład)Używanie XPath do analizowania dokumentu XML
<rows>
<row>
<name>one</name>
</row>
<row>
<name>two</name>
</row>
</rows>
Staram się analizować to za pomocą XmlDocument i XPath (ostatecznie więc mogę zrobić listę wierszy).
Na przykład ...
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
foreach(XmlNode row in doc.SelectNodes("//row"))
{
string rowName = row.SelectSingleNode("//name").InnerText;
}
Dlaczego w moim pętli foreach jest rowName zawsze "jeden"? Spodziewam się, że będzie to "jeden" w pierwszej iteracji, a "dwa" w drugiej.
Wygląda na to, że // nazwa dostaje pierwszą instancję w dokumencie, a nie pierwszą instancję w wierszu, jak można się było spodziewać. Wszakże wywołuję metodę w węźle "wiersz". Jeśli jest to "po prostu jak to działa", czy ktoś może wyjaśnić, w jaki sposób mogę go zmienić, aby działał zgodnie z moimi potrzebami?
Dziękuję
jak o wybranie go przez // wiersza/nazwy? czy to działa? – Steve