【发布时间】:2011-10-31 21:24:18
【问题描述】:
可能这个问题重复了,但我对现有的答案并不满意。我想通过属性值从动态生成的 xml 文件中获取 xml 元素。我们不知道有多少节点,以及它的层次结构。但是每个元素,它的子元素,它的子子元素,子子子元素......等等都将包含唯一的 guid 作为“Id”属性:
<Element id="">
<SubElement id=""></SubElement>
<SubElement id="">
<SubSubElement id="">
<SubSubSubElement id="">
<SubSubSubSubElement id="">....other sub inside this ...</SubSubSubSubElement>
</SubSubSubElement>
</SubSubElement>
</SubElement>
</Element>
我只想通过传递 Guid 值来查找元素。不管它的xpath,它的节点位置/位置。我怎么能在 C# 中做到这一点?我需要使用 LINQ 吗?
已编辑:
XDocument xmldoc = XDocument.Load(xmlFilePath);
XElement selectedElement = xmldoc.Descendants().Where(x => (string) x.Attribute("id") == myIdvalue).FirstOrDefault();
例外: “表达式不能包含 lambda 表达式” 我添加了使用 System.Linq 命名空间。
【问题讨论】: