0

我有一个看起来像这样的 xml 文件:

<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>

[...]

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

在这种情况下,是否有直接的方法来获取“image_url”的值,其中值“image_realtyimagetype_id”是“pääkuva”,而无需使用 foreachs 遍历整个树?(每个 item-id 中只有一个“pääkuva”)

“image_realtyimagetype_id”也可以声明“yleiskuva”或类似的,但我只需要“pääkuva”(表示主图像)

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

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

但现在我需要特定的图像。有没有办法直接用 xpath 做到这一点?

4

2 回答 2

3

长 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()

谢谢@dirkk

于 2013-05-22T09:18:57.057 回答
0

试试这个 XPath:

//item[@id="1991901"]//property[@name="image_realtyimagetype_id"]/value[text() = "pääkuva"]/../following-sibling::property[@name="image_url"]/value
于 2013-05-22T09:28:29.880 回答