【发布时间】:2012-01-20 03:19:56
【问题描述】:
我想使用 linq to XML 解析一些大型 XML 文件,但我不知道该怎么做。
我想阅读 <dac> 标签之后的所有 <name> 标签。我必须提到我在 XMl 文件中有许多 <name> 标记,我只想阅读 <dac> 之后的那个标记。如何使用 linq to xml 做到这一点?
这是我的 XML 文件的一个简单示例:
我希望代码返回这样的值:(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>
【问题讨论】:
-
你想要
name标签在之后还是在dac标签内? -
您发布了无效的 XML。请更正。
-
@DanielHilgarth dac 标签块中的名字标签
-
@AVD 我只是复制了整个 XML 的一部分以显示结构,我无法复制所有部分,因为它的大小很大。
-
@Am1rr3 :发布一段更短且有效的 XML 并指定所需的结果。
标签: c# linq-to-xml