如何确定 XElement.Elements() 是不是包含具有特定名称的节点?
Posted
技术标签:
【中文标题】如何确定 XElement.Elements() 是不是包含具有特定名称的节点?【英文标题】:How to determine if XElement.Elements() contains a node with a specific name?如何确定 XElement.Elements() 是否包含具有特定名称的节点? 【发布时间】:2010-09-19 09:22:38 【问题描述】:例如对于以下 XML
<Order>
<Phone>1254</Phone>
<City>City1</City>
<State>State</State>
</Order>
我可能想知道 XElement 是否包含“City”节点。
【问题讨论】:
【参考方案1】:只需将另一个重载用于Elements。
bool hasCity = OrderXml.Elements("City").Any();
【讨论】:
如果您不关心它在树中的位置,也可以使用 Descendants("MyNode").Any()。 CS1061:“System.Collections.Generic.IEnumerable自从我做 Xlinq 以来已经有一段时间了,但是我的 WAG 来了:
from x in XDocument
where x.Elements("City").Count > 0
select x
;
【讨论】:
【参考方案3】:David's 是最好的,但如果您需要一些自定义逻辑,您可以编写自己的谓词OrderXML.Elements("City").Exists(x=>x.Name =="City")
【讨论】:
以上是关于如何确定 XElement.Elements() 是不是包含具有特定名称的节点?的主要内容,如果未能解决你的问题,请参考以下文章