名称包含的XDocument后代

时间:2013-07-30 14:23:26

标签: c# linq-to-xml

我可能不会使用Google搜索正确的关键字,因为我似乎找不到任何类似的关键字。

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

<country>
<addressCountry>
<idcountry>

我可以在此模型代码中找到所有后代吗?

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

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

2 个答案:

答案 0 :(得分:7)

您希望元素的名称本地名称部分:

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

(这是一种更简洁的方法,可以执行不区分大小写的检查 - 例如,它避免了“套土Iı的”土耳其“问题。令人讨厌的是没有超载适用于ContainsStringComparison的{​​{1}},但这就是生活......)

答案 1 :(得分:0)

myXDocument.Descendants("country")

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