Использование 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 всегда "один"? Я ожидаю, что это будет «один» на первой итерации и «два» на второй.

Кажется, // имя получает первый экземпляр в документе, а не первый экземпляр в строке, как я и ожидал. В конце концов, я вызываю метод на узле "строка". Если это «просто как это работает», то кто-нибудь может объяснить, как я мог бы изменить это, чтобы работать в соответствии с моими потребностями?

Спасибо

Ответы на вопрос(7)

Ваш ответ на вопрос