如果存在另一个节点值,请选择一个节点值



我有几个节点(见下文)。我知道如何选择具有特定属性的特定节点。但在这种情况下,我想导入属于"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专家可以指出我正确的方向?

使用

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

这将选择任何file_url元素,该元素是 XML 文档中顶部元素的"孙级",并且其父级具有字符串值为 'narrowImage'group子元素。

我认为您应该能够使用:

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

这应该选择文件中的每个media_object(无论级别如何),然后根据group='narrowImage'过滤它们,然后给你file_url子级。

最新更新