doulongsi1831
2013-05-22 09:05
浏览 249

xml - xpath选择某个节点后的第三个节点

I have an xml file which looks like this:

<item id="1991901" >
    <property name="image">
        <property>
            <property name="image_realtyimagetype_id">
                <value>pääkuva</value>
            </property>
            <property name="image_itemimagetype_name">
               <value>kivirealty-original</value>
            </property>
            <property name="image_desc">
               <value></value>
            </property>
            <property name="image_url">
               <value>http://domain.com/img4092288730864152376.jpg</value>
            </property>

[...]

It contains a lot of items with different pictures and other data.

Is there a direct way to get the value of "image_url" in the case, where value "image_realtyimagetype_id" is "pääkuva" without going through the whole tree with foreachs? (there is only one "pääkuva" in every item-id)

The "image_realtyimagetype_id" can also state "yleiskuva" or similar, but I need only the "pääkuva" (which means main image)

I got until now only the first of the images in the file like this:

$path = '//item[@id="'.$itemId.'"]/property[@name="image"]/property/property[@name="image_url"]/value/text()';

But now I need the certain image. Is there a way to do this directly with xpath?

图片转代码服务由CSDN问答提供 功能建议

我有一个xml文件,如下所示:

   &lt; item id =“1991901”&gt; 
&lt; property name =“image”&gt; 
&lt; property&gt; 
&lt; property name =“image_realtyimagetype_id”&gt; 
&lt; value&gt;pääkuva&lt; / value&gt  ; 
&lt; / property&gt; 
&lt; property name =“image_itemimagetype_name”&gt; 
&lt; value&gt; kivirealty-original&lt; / value&gt; 
&lt; / property&gt; 
&lt; property name =“image_desc”  &gt; 
&lt; value&gt;&lt; / value&gt; 
&lt; / property&gt; 
&lt; property name =“image_url”&gt; 
&lt; value&gt; http://domain.com/img4092288730864152376.jpg<  / value&gt; 
&lt; / property&gt; 
 
 [...] 
   
 
 

它包含许多具有不同图片和其他数据的项目。< / p>

是否有直接获取“image_url”值的方法,其中值为“image_realtyimagetype_i” d“是”pääkuva“没有经过整个树与foreachs? (每个项目中只有一个“pääkuva”-id)

“image_realtyimagetype_id”也可以说“yleiskuva”或类似的,但我只需要“pääkuva”(这意味着主要的) 图片)

到目前为止我只得到文件中的第一个图像,如下所示:

  $ path ='// item  [@id =“” $的itemId。 ' ”] /属性[@名称=“ 图像 ”] /属性/特性[@名称=“ IMAGE_URL”] /值/文本()'; 
  <  / pre> 
 
 

但现在我需要特定的图像。 有没有办法直接使用xpath?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dousi2029 2013-05-22 09:18
    已采纳

    A long XPath:

    http://3v4l.org/HtUUD `//item/property[@name="image"]/property[//property[@name="image_realtyimagetype_id"]/value/text()="pääkuva"]/property[@name="image_url"]/value/text()`

    http://3v4l.org/4VpU3

    //item/property[@name="image"]/property[property[@name="image_realtyimagetype_id"]/value/text()="pääkuva"]/property[@name="image_url"]/value/text()

    Thanks @dirkk

    已采纳该答案
    打赏 评论
  • douchen4547 2013-05-22 09:28

    Try this XPath:

    //item[@id="1991901"]//property[@name="image_realtyimagetype_id"]/value[text() = "pääkuva"]/../following-sibling::property[@name="image_url"]/value
    
    打赏 评论

相关推荐 更多相似问题