У вас здесь много чего происходит, трудно предсказать, что может произойти.
$icon = $xml->xpath("/xml_api_reply/weather/forecast_conditions/icon");
На данный момент $icon
- это массив, возможно пустой, объектов SimpleXMLObject.
$iconData = str_replace('.gif','.png',$icon);
str_replace
может принимать массив в качестве третьего аргумента, возможно , что также приводит значения в $icon
к строкам.Результат этого зависит от структуры вашего XML, если элементы icon
всегда являются текстовыми, это должно быть в порядке.
echo '<img src="'.get_bloginfo('stylesheet_directory').'/images'.$iconData[2]->attributes().'" />'
Работает ли это вообще?Я бы подумал, что на этом этапе $ iconData будет массивом строк, а не массивом объектов SimpleXMLObject.
На вашем месте я бы вручную итерировал результаты поиска xpath и явно приводилSimpleXMLObject объекты в строки, как когда я хотел, чтобы они вели себя как строки.
HTH.