Leer archivo XML en XmlDocument


103

Soy muy nuevo en C #. Tengo un archivo XML (text.xml). Quiero leer eso XmlDocumenty almacenar el flujo en una variable de cadena.


1
Gracias a los dos por su ayuda.
AJP

Respuestas:


169

Utilice el XmlDocument.Load()método para cargar XML desde su archivo. Luego use la XmlDocument.InnerXmlpropiedad para obtener una cadena XML.

XmlDocument doc = new XmlDocument();
doc.Load("path to your file");
string xmlcontents = doc.InnerXml;

2
XmlDocumentno contiene una definición de Load.
Matt Clark

Rechacé todos estos porque ninguno de ellos funcionó. Resulta que estoy desarrollando para WindowsRT, y Compact .NET Framework tiene muchas de estas características eliminadas. Incluyendo muchos de los que necesito ... Como XmlDocument.Load()y y el constructor StreamReaderStreamReader(filePath)
Matt Clark

11
@MattClark: Siento su dolor, he estado luchando con los caprichos y las limitaciones de la FQ durante dos años, pero esa no es razón para rechazarlo. El OP no especificó CF, por lo que no hay razón para que los respondedores tomen en consideración CF.
B. Clay Shannon


6

Espero que no te importe Xml.Linq y .net3.5 +

XElement ele = XElement.Load("text.xml");
String aXmlString = ele.toString(SaveOptions.DisableFormatting);

Dependiendo de lo que le interese, probablemente pueda omitir toda la parte var de 'cadena' y simplemente usar objetos XLinq


6
XmlDocument doc = new XmlDocument();
   doc.Load("MonFichierXML.xml");

    XmlNode node = doc.SelectSingleNode("Magasin");

    XmlNodeList prop = node.SelectNodes("Items");

    foreach (XmlNode item in prop)
    {
        items Temp = new items();
        Temp.AssignInfo(item);
        lstitems.Add(Temp);
    }

1
var doc = new XmlDocument(); 
doc.Loadxml(@"c:\abc.xml");

Tenga en cuenta que la pregunta también requiere almacenar el contenido XML en una cadena.
minutos

XmlDocument.LoadXml()carga una cadena XML. Para cargar un archivo XML por nombre, utilícelo XmlDocument.Load()como sugiere la respuesta aceptada.
François Beaune
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.