在C#中解析XML文档

GIR*_*AIL 18 c# xml

重复:这是使用C#解析xml文件最佳实践的副本和许多其他人(见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>
Run Code Online (Sandbox Code Playgroud)

像这些有很多节点..我需要从下往上开始解析,如...解析<company>然后等等.如何在C#中解决这个问题?

Jon*_*ant 61

试试这个:

XmlDocument doc = new XmlDocument();
doc.Load(@"C:\Path\To\Xml\File.xml");
Run Code Online (Sandbox Code Playgroud)

或者,如果您在字符串中使用XML,请使用该LoadXml方法.

加载后,您可以使用SelectNodesSelectSingleNode查询特定值,例如:

XmlNode node = doc.SelectSingleNode("//Company/Email/text()");
// node.Value contains "test@ABC.com"
Run Code Online (Sandbox Code Playgroud)

最后,请注意您的XML无效,因为它不包含单个根节点.必须是这样的:

<Data>
    <Employee>
        <Name>Test</Name>
        <ID>123</ID>
    </Employee>
    <Company>
        <Name>ABC</Name>
        <Email>test@ABC.com</Email>
    </Company>
</Data>
Run Code Online (Sandbox Code Playgroud)