2011-12-13 131 views
0

有没有什么方法可以用匹配大小写的方式在XML文档中搜索?在这篇文章中,我看到了完全匹配搜索:XPath query for exact match匹配捕获的XPath查询

我想实现的是根据我的标准获取所有匹配的元素。

一样,如果我有下面的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扩展。

任何想法如何得到这个?

回答

1

//Misc[substring(@URL, string-length(@URL)-3)='.ogv']

上面使用XPath 1.0和简单地执行子字符串并返回最后3个字符来匹配.ogv

另外,为了简化以上,使用XPath 2.0 //Videos/Misc[ends-with(@URL, '.ogv')]

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);