2011-12-13 190 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);