У меня есть фид XML, который выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<productFeed version="1.0" timestamp="20100910:04:06:55">
<product id="196">
<name>Lorem</name>
<price>190.00</price>
<description>Lorem Ipsum</description>
<productURL> http://www.example.com</productURL>
<imageURL> http://www.example.com/lorem.jpg </imageURL>
<additional>
<field name="country" value="IT" />
<field name="region" value="Rome" />
<field name="city" value="Rome" />
</additional>
<categories>
<category name="foobar" />
</categories>
</product>
</productFeed>
Я пытаюсь распечатать атрибут категории, среди прочего, с помощью этого скрипта:
<?php
$url = 'lorem.xml';
$xml = simplexml_load_file($url);
$expr = "/productFeed//product/additional/field[@value='Rome']/parent::*/parent::*";
$result = $xml->xpath($expr);
foreach($result as $item) {
echo $item->name;
echo $item->imageURL;
echo $item->description;
echo $item->price;
echo $item->category->attributes()->name;
}
Это дает:
Предупреждение: main () [function.main]: узел больше не существует
ошибка, хотя плагин FireXPath Firebug говорит мне, что я тоже правильно выбираю атрибуты.