【发布时间】:2016-02-19 20:09:01
【问题描述】:
我无法获得一个 XmlNodeList,其中有 1 个具有特定名称的孩子
<tables>
<table tableName="Orders">
<item table="Orders">
...
</item>
<item table="Orders">
...
</item>
</table>
<table tableName="OrderWithParent">
<item table="OrderWithParent">
<column columnName="OrderWithParentId"><![CDATA[156]]></column>
<column columnName="OrderParentId"><![CDATA[1]]></column>
...
</item>
<item table="OrderWithParent">
<column columnName="OrderWithParentId"><![CDATA[156]]></column>
<column columnName="OrderParentId"><![CDATA[1]]></column>
...
</item>
<item table="OrderWithParent">
<column columnName="OrderWithParentId"><![CDATA[156]]></column>
<column columnName="OrderParentId"><![CDATA[2]]></column>
...
</item>
</table>
</tables>
这就是我的基本 xml 布局...
我已经反序列化了顶级订单...现在我想找到 OrderWithParent 的列,其中 columnName="OrderParentId" == order.Id
这样检索的订单节点:
var orders = root.SelectNodes("/tables/table[@tableName='Orders']/item[@table='Orders']");
所以 atm 我使用 XmlDocument.. 我希望也使用 XDocument.. 但我无法找到其中任何一个的解决方案。非常感谢您的帮助!
【问题讨论】:
-
您可以发布您的 XML 的有效示例吗?不一定要满,但足以测试。
-
应该够了。唯一缺少的是顶部标签 我想选择所有 OrderWithParent 其中 columnName="OrderParentId" 列的值为 1 作为示例..跨度>
-
缺少结束标签
-
好的,已更新。现在有 3 个 OrderWithParent .. 所以如果我搜索 OrderParentId = 1 的那个 .. 我想从 3 个中得到 2 个;)
标签: c# xml xpath linq-to-xml xmldocument