2015-07-16 2 views
1

После траты более 6 часов я отправляю свою проблему здесь.Узел php simplexml больше не существует: как получить значение атрибута?

Я пытаюсь получить SimpleXmlElement значение атрибута:

Это мое var_dump значение:

object(SimpleXMLElement)#5 (1) { 
["@attributes"]=> 
array(3) { 
["type"]=> 
string(4) "Rich" 
["template"]=> 
string(44) "EntityContainer.HeroGeneric_8_1_RTM-7814aaaa" 
["disambiguationId"]=> 
string(36) "85fa63d3-9596-adb9-b4eb-502273d84f56" 
} 
} 

Я хочу, чтобы получить [ "типа"] значение "Rich". Однако я не могу это получить. Я видел много ответов и пример кода, прежде чем отправлять его здесь, но они не помогли. На самом деле первый раз я пытаюсь использовать SimpleXmlElement [Advance] код

Мой код PHP

$xml = simplexml_load_file($url); 

$xml2 = $xml->channel->item; 

foreach ($xml2 as $out_ns) 
{ 

$ns = $out_ns->getNamespaces(true); 
$child = $out_ns->children($ns['win']); 

var_dump($child); // Value is written above simple xml object 

print_r((string) $child->attributes()); 

} 

Я хочу знать, что это не так я сделал. Я хочу получить значения атрибута type и disambiguationId.

Ошибка:

Warning: SimpleXMLElement::__toString(): Node no longer exists in E:\xampp\htdocs\ring\dom.php on line 15

Пожалуйста, проверьте меня мой код помощь.

+0

какова структура вашего XML? – michi

ответ

1

Вы должны проверить, если элемент существует:

if($child && $child->attributes()) { 
    print_r($child->attributes()); 
} 
Смежные вопросы