2012-04-11 91 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孩子。

相关问题