2012-04-11 120 views
1

我有幾個節點(請參見下文)。我知道如何選擇具有特定屬性的特定節點。但在這種情況下,我想導入屬於組「narrowImage」的媒體對象的「file_url」值。xpath - 如果存在其他節點值,請選擇一個節點值

<media_object> 

<media_object> 
    <file_id>5175967</file_id> 
    <group>wideImage</group> 
    <file_url>http://www.mysite.com/image1.jpg</file_url> 
</media_object> 

<media_object> 
    <file_id>5175968</file_id> 
    <group>wideImage</group> 
    <file_url>http://www.mysite.com/image2.jpg</file_url> 
</media_object> 

<media_object> 
    <file_id>5175969</file_id> 
    <group>narrowImage</group> 
    <file_url>http://www.mysite.com/image3.jpg</file_url> 
</media_object> 

</media_object> 

在上述情況下,我只需要值「http://www.mysite.com/image3.jpg」

任何XPath專家那裏誰可以點我在正確的方向?

回答

1

使用

/*/*[group = 'narrowImage']/file_url 

這將選擇任何file_url元素是頂級元素的「大孩子」在XML文檔中,並且其父母有一個group子元素,其字符串值'narrowImage'

+0

謝謝dimitre,我並不完全知道在搜索中使用哪些關鍵詞,幫助我解決了一大堆問題 – 2012-04-11 12:40:52

+1

@WilliamLekatompessy:不客氣。您可以使用XPath Visualizer工具來學習XPath的有趣方式:http://www.huttar.net/dimitre/XPV/TopXML-XPV.html – 2012-04-11 12:46:28

0

我想你應該能夠使用:

//media_object[group='narrowImage']/file_url 

這應該在你的文件中選擇每media_object(不分級別),然後過濾它們基於組=「narrowImage」然後給你的file_url孩子。

相關問題