Использование XPath для разбора документа XML
Допустим, у меня есть следующий XML (быстрый пример)
<rows>
<row>
<name>one</name>
</row>
<row>
<name>two</name>
</row>
</rows>
Я пытаюсь разобрать это с помощью XmlDocument и XPath (в конечном итоге, чтобы я мог составить список строк).
Например...
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
foreach(XmlNode row in doc.SelectNodes("//row"))
{
string rowName = row.SelectSingleNode("//name").InnerText;
}
Почему в моем цикле foreach rowName всегда "один"? Я ожидаю, что это будет «один» на первой итерации и «два» на второй.
Кажется, // имя получает первый экземпляр в документе, а не первый экземпляр в строке, как я и ожидал. В конце концов, я вызываю метод на узле "строка". Если это «просто как это работает», то кто-нибудь может объяснить, как я мог бы изменить это, чтобы работать в соответствии с моими потребностями?
Спасибо