Yoi*_*iku 3 c# xml xelement search
我需要通过其属性之一的值搜索子节点,例如说我有这个 XML
<Root>
<Child Name="1" foo="a"/>
<Child Name="2" foo="a"/>
<Child Name="3" foo="b"/>
<Child Name="4" foo="c"/>
<OhterTag/>
</Root>
Run Code Online (Sandbox Code Playgroud)
我想提取属性 Name 值为 2 的节点 Child 。。。我想要完整的节点而不仅仅是节点的标签。
我尝试过这样的事情
root.Elements("Attr").Where(child => child.Attribute("Name").Value == "2");
Run Code Online (Sandbox Code Playgroud)
但我还没有工作
使用元素名称,即“Child”,它应该按照您的方式工作...并且由于.Where在这种情况下返回一个IEnumerable<XElement>, 来获取该元素,请.First()在最后使用。
root.Elements("Child")
.Where(child => child.Attribute("Name").Value == "2")
.First()
Run Code Online (Sandbox Code Playgroud)
...或者你可以只使用谓词.First()
root.Elements("Child")
.First(child => child.Attribute("Name").Value == "2")
Run Code Online (Sandbox Code Playgroud)
最后,如果节点不存在,您可以使用 .FirstOrDefault() ,以避免空引用异常,按照@HamletHakobyan 建议的下面评论中的讨论
root.Elements("Child")
.FirstOrDefault(child => child.Attribute("Name").Value == "2")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5012 次 |
| 最近记录: |