2009-08-06 147 views
17

重複:這是Best practices to parse xml files with C#?和其他許多(請參閱https://stackoverflow.com/search?q=c%23+parse+xml)的副本。請關閉它,不要回答。解析C#中的XML文檔


如何在C#中自下而上解析XML文檔?

例如:

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

像這些有很多nodes..I需要開始從下往上解析like..first解析<company>,然後等on..How DOI去這個問題在C# ?

+0

我喜歡的LINQ的[的XDocument(http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx)。 – DanDan 2009-08-06 12:40:20

+0

您可以使用[XmlSerializer](http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx)類。它需要你的類,並且可以很容易地讀/寫它到XML文件。 – speps 2009-08-06 12:31:11

+0

簽出System.Xml命名空間http://msdn.microsoft.com/zh-cn/library/system.xml%28VS.80%29.aspx – nWorx 2009-08-06 12:26:30

回答

60

試試這個:

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

或者相反,如果你有一個字符串的XML使用LoadXml方法。

一旦你擁有了它加載,你可以使用SelectNodesSelectSingleNode查詢特定的值,例如:

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

最後,請注意你的XML是無效的,因爲它不包含一個根節點。它必須是這樣的:

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