我的 XML 看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<University>
<Colleges>
<College>
<Id> Cambridge </Id>
<Dept>
<Id> Arts</Id>
</Dept>
</College>
<College>
<Id> Oxford</Id>
<Dept>
<Id> Philosophy </Id>
</Dept>
</College>
</Colleges>
</University>
我想根据ID返回学院。在另一种情况下,我只想写学院的 Id。
我不明白如何写LINQ语句来直接读取Id。我可以在每个阶段使用 Descendants()
。但是如何选择XML结构深处的元素呢?
也许您应该使用 XPath。语法将比纯 Linq 查询更简单:
using System.Xml;
using System.Xml.XPath;
...
public foo()
{
XElement yourNode = XElement.Parse(yourstring);
XElement college = root.XPathSelectElement("//College[Id='Oxford']");
}
如果您可以在结构中的多个位置拥有 College 节点,XPAth 查询 /University/Colleges/College[Id='OxFord']
将避免冲突问题。
我是一名优秀的程序员,十分优秀!