我有一个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? (每个项目中只有一个“pääkuva”id)
“image_realtyimagetype_id”也可以说“yleiskuva”或类似的,但我只需要“pääkuva”(意思是主图像)
到目前为止,我只得到文件中的第一个图像:
$path = '//item[@id="'.$itemId.'"]/property[@name="image"]/property/property[@name="image_url"]/value/text()';
但现在我需要一定的形象。有没有办法直接用xpath做到这一点?
答案 0 :(得分:3)
漫长的XPath:
<德尔> http://3v4l.org/HtUUD `//项/属性[@名称= “图像”] /属性[//属性[@名称= “image_realtyimagetype_id”] /值/文本()= “pääkuva”] /属性[@名称= “IMAGE_URL”] /值/文本()` 德尔> //item/property[@name="image"]/property[property[@name="image_realtyimagetype_id"]/value/text()="pääkuva"]/property[@name="image_url"]/value/text()
谢谢@dirkk
答案 1 :(得分:0)
试试这个XPath:
//item[@id="1991901"]//property[@name="image_realtyimagetype_id"]/value[text() = "pääkuva"]/../following-sibling::property[@name="image_url"]/value