有没有办法在匹配大小写的情况下搜索XML文档?在这篇文章中,我看到完全匹配的搜索:XPath query for exact match
我想要实现的是根据我的标准获得所有匹配的元素。
就像我有以下XML一样:
<Videos>
<Misc URL="http://ccc/.webm1.webm" />
<Misc URL="http://bbb/OGG_2.ogv" />
<Misc URL="http://aaa/OGG_3.ogv" />
<Misc URL="http://ccc/.webm4.webm" />
<Misc URL="http://bbb/OGG_5.ogv" />
<Misc URL="http://aaa/OGG_6.ogv" />
</Videos>
我希望获取包含.ogv
的所有节点,同样包含.webm
个扩展名的所有节点。
知道如何获得这个吗?
答案 0 :(得分:1)
//Misc[substring(@URL, string-length(@URL)-3)='.ogv']
以上使用XPath 1.0并只执行子字符串并返回最后3个字符以匹配.ogv
。
另外,为简化上述操作,请使用XPath 2.0 //Videos/Misc[ends-with(@URL, '.ogv')]
。
答案 1 :(得分:0)
尝试使用Linq-XML。
XDocument doc = XDocument.Load(file);
var result = doc.Descendants("Misc").Select(p => p.Attribute("URL"))
.Where(p => p.Value.EndsWith(".ogv"));
foreach (var t in result)
Console.WriteLine(t.Value);