【发布时间】:2014-07-08 08:31:38
【问题描述】:
我想提取 moduleId 属性中的值和 Field 节点中的值。例如,在第一个节点中,我想提取 moduleId 中的 447 和 Field 节点中的 124694。我在 XDocument 中加载了 XML。最终结果将是一个 Tuple,其中第一项是 moduleId 属性的值,第二项是 Field 节点的值。有没有一种方法可以使用一个 Xlinq 语句来做到这一点?
作为奖励...我只想对 guid = "07a188d3-3f8c-4832-8118-f3353cdd1b73" 的节点执行此操作。这部分我可能会弄清楚是否有人可以告诉我如何从两个节点中提取信息,但额外的好处是为我添加 WHERE 子句:)
<Records>
<Record moduleId="447">
<Field guid="07a188d3-3f8c-4832-8118-f3353cdd1b73">124694</Field>
</Record>
<Record moduleId="447">
<Field guid="07a188d3-3f8c-4832-8118-f3353cdd1b73">124699</Field>
</Record>
<Records>
我已经使用这个来提取字段值......
IEnumerable<string> c = from p in sourceDocument.Descendants("Field")
where p.Attribute("guid").Value == "07a188d3-3f8c-4832-8118-f3353cdd1b73"
select p.Value;
但我不知道如何从 Record 节点和 Field 节点获取信息。
【问题讨论】:
-
你能用有效的 XML 更新你的帖子吗?这里有多个根元素。
-
考虑编辑您的 XML 以正确关闭
<Records>元素...结束标记缺少/。
标签: c# xml linq-to-xml