Utilizando XPath para analizar un documento XML

Digamos que tengo el siguiente xml (un ejemplo rápido)

<rows>
   <row>
      <name>one</name>
   </row>
   <row>
      <name>two</name>
   </row>
</rows>

Estoy tratando de analizar esto usando XmlDocument y XPath (en última instancia, para poder hacer una lista de filas).

Por ejemplo..

XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);

foreach(XmlNode row in doc.SelectNodes("//row"))
{
   string rowName = row.SelectSingleNode("//name").InnerText;
}

¿Por qué, dentro de mi bucle foreach, es rowName siempre "uno"? Espero que sea "uno" en la primera iteración y "dos" en la segunda.

Parece que // nombre obtiene la primera instancia en el documento, en lugar de la primera instancia en la fila como era de esperar. Después de todo, estoy llamando al método en el nodo "fila". Si esto es "cómo funciona", ¿alguien puede explicarme cómo podría cambiarlo para que funcione según mis necesidades?

Gracia

Respuestas a la pregunta(7)

Su respuesta a la pregunta