1

我可能没有在谷歌上搜索正确的关键字,因为我似乎找不到任何类似的东西。

我有一个 XDocument,它在不同的地方都有后代,例如:

<country>
<addressCountry>
<idcountry>

我可以像在这个模型代码中那样定位所有后代吗?

XDocument.Descendents.Where(x => x.ToLower().Contains("country"));

我该怎么做呢?感谢您的任何帮助。

4

2 回答 2

8

您想要元素名称的本地名称部分:

// Adjust this how you wish.
var comparison = StringComparison.InvariantCultureIgnoreCase;
var elements = 
      doc.Descendants()
         .Where(x => x.Name.LocalName.IndexOf("country", comparison) != -1);

(这是执行不区分大小写检查的一种更简洁的方法 - 例如,它避免了小写的“土耳其”问题Iı令人讨厌的是,没有Contains采用 aStringComparison或 a的重载StringComparer,但这就是生活。 ..)

于 2013-07-30T14:26:18.253 回答
0
myXDocument.Descendants("country")

只需处理可能的命名空间问题...

于 2013-07-30T14:27:32.567 回答