LINQ to XML 简单查询
我有一个像这样的 XML 文档:
<Persons>
<Person Id="10000" FullName="Jon Doe">
<Status StatusID="1" StatusDesc="Active"/>
<Fields>
<Field FieldId="1" Value="xxxx"/>
<Field FieldId="2" Value="yyyy"/>
<Field FieldId="2" Value="zzzz"/>
</Fields>
</Person>
<Person Id="10001" FullName="John Smith">
<Status StatusID="2" StatusDesc="New"/>
<Fields>
<Field FieldId="3" Value="aaaa"/>
<Field FieldId="4" Value="bbbb"/>
<Field FieldId="5" Value="ccccv"/>
</Fields>
</Person>
</Persons>
我想编写一个返回“Person”ID 和所有“Fields”元素的 XML 查询。 我可以获取所有“Fields”元素,但不能获取“Person”ID。 当我需要“状态”元素时,这同样适用。
任何帮助将不胜感激。
I have an XML doc like this:
<Persons>
<Person Id="10000" FullName="Jon Doe">
<Status StatusID="1" StatusDesc="Active"/>
<Fields>
<Field FieldId="1" Value="xxxx"/>
<Field FieldId="2" Value="yyyy"/>
<Field FieldId="2" Value="zzzz"/>
</Fields>
</Person>
<Person Id="10001" FullName="John Smith">
<Status StatusID="2" StatusDesc="New"/>
<Fields>
<Field FieldId="3" Value="aaaa"/>
<Field FieldId="4" Value="bbbb"/>
<Field FieldId="5" Value="ccccv"/>
</Fields>
</Person>
</Persons>
I want to write an XML query that returns the "Person" ID and all "Fields" elements.
I can get all "Fields" elements but not the "Person" ID.
The same applies when I need the "Status" element.
Any help will be appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试这样的操作:
这将为您提供一系列看起来像这样的匿名类型:
我使用 Descendants 方法来检索字段的原因是因为我首先使用的元素是
Person
元素。由于Elements
仅返回直接子节点,因此无法检索字段,因此我使用了后代
。要枚举结果,您可以这样做:
Try something like this:
This will give you a sequence of anonymous types that look something like this:
The reason that I used the
Descendants
method to retrieve the fields is because the element I am first working with is thePerson
element. SinceElements
only returns nodes that are direct children it would not work to retrieve the fields so I usedDescendants
instead.To enumerate the results you can do this: