在C#中解析XML文档

18

重复:这是一个重复问题,与Best practices to parse xml files with C#?和许多其他问题相同(请参见https://stackoverflow.com/search?q=c%23+parse+xml)。请关闭该问题,不要回答。


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

例如:

<Employee>
   <Name> Test </name>
   <ID> 123 </ID>
<Employee>
<Company>
    <Name>ABC</company>
    <Email>test@ABC.com</Email>
 </company>

像这样有许多节点..我需要从下往上解析,例如首先解析 <company> 然后是 以此类推..我该如何在 C# 中实现?


请查看 System.Xml 命名空间 http://msdn.microsoft.com/zh-cn/library/system.xml%28VS.80%29.aspx - nWorx
你可以使用 XmlSerializer 类。它可以轻松地将你的类读写到 XML 文件中。 - speps
我喜欢Linq的XDocument - DanDan
1个回答

62

试试这个:

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 "test@ABC.com"

最后,请注意你的XML是无效的,因为它不包含单个根节点。格式应该像这样:

<Data>
    <Employee>
        <Name>Test</Name>
        <ID>123</ID>
    </Employee>
    <Company>
        <Name>ABC</Name>
        <Email>test@ABC.com</Email>
    </Company>
</Data>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接