doulongsi1831 2013-05-22 09:05
浏览 354
已采纳

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?

  • 写回答

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?