Bucle a través del documento XML

Mi Método:

if (File.Exists( @"C:\config.xml")) { System.Xml.XmlDocument xd = new System.Xml.XmlDocument(); xd.Load( @"C:\config.xml"); System.Xml.XmlElement root = xd.DocumentElement; System.Xml.XmlNodeList nl = root.SelectNodes("/config"); foreach (System.Xml.XmlNode xnode in nl) { string name = xnode.Name; string value = xnode.InnerText; string nv = name + "|" + value; Send(nv); } 

Mi xml doc

   D 300 34000 3800 help 1 ....and so on  

Ahora mi método devuelve los 2 primeros y nada más. Qué estoy haciendo mal…

use el espacio de nombres System.Xml para evitar calificaciones de tipo largas, es decir …

  using System.Xml; 

Entonces intenta algo como esto ..

  XmlNodeList nl = xd.SelectNodes("config"); XmlNode root = nl[0]; foreach (XmlNode xnode in root.ChildNodes) { string name = xnode.Name; string value = xnode.InnerText; string nv = name + "|" + value; Send(nv); } 

Creo que hay algo mal con tu método.

a) No creo que SelectNodes deba tomar el argumento /config , sino que debería tomar config .

b) Después de seleccionar el primer (y único – archivos XML en .Net debe tener uno y solo un nodo raíz) el nodo raíz que necesita para iterar a través de los ChildNodes de la raíz.

root es la etiqueta , así que no entiendo cómo root.SelectNodes (“/ config”) debería funcionar. Utilice root.Childnodes en su lugar.