C# 如何使用LINQ选择XML文档中包含特定字符串的所有属性
类似于但不使用XPath。可能吗C# 如何使用LINQ选择XML文档中包含特定字符串的所有属性,c#,xml,linq-to-xml,C#,Xml,Linq To Xml,类似于但不使用XPath。可能吗 <c BarFoo="val1"> <d Foo="val2" someAttribute=""> <e FooBar="val3" /> </d> </c> 基本上,我想选择文档中属性名称包含“Foo”的所有属性值,因此它应该返回“BarFoo”、“FooBar”、“Foo”(va1、val2、val3)的值,如下所示: elem.DescendantsAndSelf()
<c BarFoo="val1">
<d Foo="val2" someAttribute="">
<e FooBar="val3" />
</d>
</c>
基本上,我想选择文档中属性名称包含“Foo”的所有属性值,因此它应该返回“BarFoo”、“FooBar”、“Foo”(va1、val2、val3)的值,如下所示:
elem.DescendantsAndSelf().Attributes().Where(a => a.Name.LocalName.Contains("Foo"))
我的出发点是将XML字符串解析为XElement对象
var query = element.DescendantsAndSelf().Attributes()
.Where(attr => attr.Name.LocalName.Contains("Foo"))
.Select(attr => new { Name = attr.Name, Value = attr.Value });
其结果是一个匿名类型的IEnumerable,包含每个属性的名称和值
BarFoo val1
Foo val2
FooBar val3