xpath - 如果存在另一个节点值,则选择节点值

时间:2012-04-11 11:54:52

标签: xpath

我有几个节点(见下文)。我知道如何选择具有特定属性的特定节点。但在这种情况下,我想导入属于“narrowImage”组的媒体对象的“file_url”值。

<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专家吗?

2 个答案:

答案 0 :(得分:1)

使用

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

这将选择任何file_url元素,该元素是XML文档中top元素的“grand-child”,其父元素具有group子元素,其字符串值为{{1} }。

答案 1 :(得分:0)

我认为你应该可以使用:

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

这应该选择文件中的每个 media_object (无论级别如何),然后根据 group ='narrowImage'过滤它们,然后为您提供 file_url < / strong>孩子。