如何确定 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”不包含“任何”的定义 @AlanBaljeu 在文件顶部添加“使用 System.Linq”。这允许使用扩展方法 System.Linq.Enumerable.Any。【参考方案2】:

自从我做 Xlinq 以来已经有一段时间了,但是我的 WAG 来了:

from x in XDocument
where x.Elements("City").Count > 0
select x

;

【讨论】:

【参考方案3】:

David's 是最好的,但如果您需要一些自定义逻辑,您可以编写自己的谓词OrderXML.Elements("City").Exists(x=&gt;x.Name =="City")

【讨论】:

以上是关于如何确定 XElement.Elements() 是不是包含具有特定名称的节点?的主要内容,如果未能解决你的问题,请参考以下文章

如何确定样本量

如何确定样本量

如何确定滚动视图中当前可见的区域并确定中心?

Flink on YARN时,如何确定TaskManager数

如何确定 div 是不是滚动到底部?

七步法计算测量不确定度:第四步