[英]parsing XML using linq to xml
I want to parse some large XML file using linq to XML but I don't know how exactly can I do this. 我想使用linq to XML解析一些大型XML文件,但是我不知道该怎么做。 I want to read all
<name>
tag that come after <dac>
tag. 我想读取
<dac>
标记之后的所有<name>
<dac>
标记。 I must mentioned I have many <name>
tag in XMl file I just want to read that one come after <dac>
. 我必须提到我在XMl文件中有很多
<name>
标记,我只想阅读在<dac>
之后的标记。 How can I do this using linq to xml? 如何使用linq to xml做到这一点?
Here is a simple sample of my XML file: 这是我的XML文件的一个简单示例:
I want the code return me such value: (SSS, HHH, HHH Panel)
我希望代码向我返回这样的值:
(SSS, HHH, HHH Panel)
<?xml version="1.0" encoding="UTF-8"?>
<installationTree>
<folder>
<id>1</id>
<name>Company</name>
<full-path>Door List / Company</full-path>
<nodes>
<controller>
<id>9</id>
<name>9016 Panel</name>
<description/>
<full-path>Door List / Company / 9016 Panel</full-path>
<nodes>
<dac>
<isOneDoorController>false</isOneDoorController>
<id>9</id>
<name>SSS</name>
<description/>
<address>1</address>
<active>true</active>
<externalId>ID:9_20111123_121106</externalId>
<mode>standard</mode>
<doorCodes/>
<full-path>Door List / Company / 9016 Panel / SSS</full-path>
<nodes/>
</dac>
<dac>
<isOneDoorController>false</isOneDoorController>
<id>10</id>
<name>HHH</name>
<description/>
<address>2</address>
<active>true</active>
<doorCodes/>
<full-path>Door List / Company / 9016 Panel / HHH</full-path>
<nodes/>
</dac>
</nodes>
</controller>
<oneDoorController>
<id>8</id>
<name>HHH Panel</name>
<description/>
<serialnumber>00:06:8e:30:24:24</serialnumber>
<timezone>Iran</timezone>
<active>true</active>
<docUpdater/>
<nodes>
<dac>
<isOneDoorController>true</isOneDoorController>
<id>8</id>
<name>HHH Panel</name>
<description/>
<address>1</address>
<active>false</active>
<doorCodes/>
</dac>
<full-path>Door List / Company / HHH Panel</full-path>
<nodes/>
</nodes>
</oneDoorController>
</nodes>
</folder>
</installationTree>
You need to load the XML document and write the statement suggested by @Henk Holterman
. 您需要加载XML文档并编写
@Henk Holterman
建议的语句。
string file = @"c:\file.xml";
XDocument doc = XDocument.Load(file);
var names= doc.Root.Descendants("dac").Elements("name");
foreach (var t in names)
Console.WriteLine(t.Value);
Something like 就像是
var names = doc.Root.Descendants("dac").Elements("name");
This assumes each <dac>
contains at most 1 <name>
element. 假定每个
<dac>
最多包含1个<name>
元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.