2009-08-06 14 views
17

Duplicado: Este es un duplicado de Best practices to parse xml files with C#? y muchos otros (consulte https://stackoverflow.com/search?q=c%23+parse+xml). Por favor ciérrelo y no responda.Documento XML de análisis en C#


¿Cómo se analiza el documento XML de abajo hacia arriba en C#?

Por ejemplo:

<Employee> 
    <Name> Test </name> 
    <ID> 123 </ID> 
<Employee> 
<Company> 
    <Name>ABC</company> 
    <Email>[email protected]</Email> 
</company> 

Como estos hay muchos nodes..I tienen que empezar a analizar desde abajo hacia arriba like..first analizar <company> en cuando y por lo on..How doi ir sobre esto en C# ?

+0

me gusta de LINQ [XDocument] (http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx). – DanDan

+0

Puede usar la clase [XmlSerializer] (http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx). Toma su clase y puede leerla/escribirla en archivos XML muy fácilmente. – speps

+0

revise el espacio de nombres System.Xml http://msdn.microsoft.com/en-us/library/system.xml%28VS.80%29.aspx – nWorx

Respuesta

60

Prueba esto:

XmlDocument doc = new XmlDocument(); 
doc.Load(@"C:\Path\To\Xml\File.xml"); 

O, alternativamente, si usted tiene el XML en una cadena de utilizar el método LoadXml.

Una vez que haya cargado, puede utilizar SelectNodes y SelectSingleNode para consultar valores específicos, por ejemplo:

XmlNode node = doc.SelectSingleNode("//Company/Email/text()"); 
// node.Value contains "[email protected]" 

Por último, tenga en cuenta que el código XML no es válido, ya que no contiene un único nodo raíz. Debe ser algo como esto:

<Data> 
    <Employee> 
     <Name>Test</Name> 
     <ID>123</ID> 
    </Employee> 
    <Company> 
     <Name>ABC</Name> 
     <Email>[email protected]</Email> 
    </Company> 
</Data>