2009-08-06 14 views
17

Duplizieren: Dies ist ein Duplikat von Best practices to parse xml files with C#? und viele andere (siehe https://stackoverflow.com/search?q=c%23+parse+xml). Bitte schließen Sie es und antworten Sie nicht.Parse XML Dokument in C#


Wie parsen Sie XML-Dokument von unten nach oben in C#?

Beispiel:

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

wie diesen gibt es viele nodes..I von unten anfangen müssen bis Parsen <company> like..first zu analysieren und dann und so on..How doi über diese in C# gehen ?

+0

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

+0

Sie können die Klasse [XmlSerializer] (http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx) verwenden. Es nimmt Ihre Klasse und kann es sehr einfach in XML-Dateien lesen/schreiben. – speps

+0

Überprüfen Sie den System.Xml-Namespace http://msdn.microsoft.com/en-us/library/system.xml%28VS.80%29.aspx – nWorx

Antwort

60

Versuchen Sie folgendes:

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

Oder alternativ, wenn Sie das XML in einer Zeichenkette haben die LoadXml Methode verwenden.

Sobald Sie es geladen haben, können Sie SelectNodes und SelectSingleNode verwenden, um bestimmte Werte abfragen, zum Beispiel:

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

Schließlich ist zu beachten, dass Ihr XML ungültig ist, da es nicht einen einzigen Wurzelknoten enthält. Es muss so etwas wie dieses:

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