2009-08-06 14 views
17

Duplicato: Questo è un duplicato di Best practices to parse xml files with C#? e molti altri (vedere https://stackoverflow.com/search?q=c%23+parse+xml). Per favore chiudilo e non rispondere.Documento XML Parse in C#


Come si analizza il documento XML dal basso verso l'alto in C#?

Per esempio:

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

Come questi ci sono molti nodes..I hanno bisogno di iniziare l'analisi dal basso verso l'alto like..first analizzare <company> e poi e così on..How doi andare su questo in C# ?

+0

mi piace di Linq [XDocument] (http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx). – DanDan

+0

È possibile utilizzare la classe [XmlSerializer] (http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx). Prende la tua classe e può leggerlo/scriverlo in file XML molto facilmente. – speps

+0

checkout lo spazio dei nomi System.Xml http://msdn.microsoft.com/en-us/library/system.xml%28VS.80%29.aspx – nWorx

risposta

60

Prova questa:

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

Oppure, in alternativa se avete la XML in una stringa utilizzare il metodo LoadXml.

volta che lo avete caricato, è possibile utilizzare SelectNodes e SelectSingleNode per interrogare i valori specifici, ad esempio:

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

Infine, ricordiamo che il vostro XML non è valido in quanto non contiene un singolo nodo radice. Deve essere qualcosa di simile:

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