php - как отобразить значения из SimpleXMLElement - PullRequest
0 голосов
/ 16 ноября 2009

как отобразить отдельные значения из следующего кода?

SimpleXMLElement Object ( 
            [@attributes] => Array 
            ( 
                        [stat] => ok 
                        ) 
                        [profile] => SimpleXMLElement Object 
                        ( 
                        [address] => SimpleXMLElement Object 
                        ( 
                        [country] => United Kingdom 
                        ) 
                        [displayName] => gareth 
                        [name] => SimpleXMLElement Object 
                        ( 
                        [givenName] => Gareth 
                        [familyName] => Davies 
                        [formatted] => Gareth Davies 
                        ) 
                        [preferredUsername] => gareth 
                        [providerName] => Google 
                        [verifiedEmail] => gareth@spyre-media.com 
                        )
                        ) 

Ответы [ 3 ]

1 голос
/ 16 ноября 2009

Раздел SimpleXML в руководстве по PHP хорошо показывает, как получить доступ к данным в объекте.

Взято (некоторые изменения) из руководства, это показывает основы:

Доступ к узлу:

$xml->movie //first 'movie' node

Доступ к определенному узлу

$xml->movie[0] //first 'movie' node

Доступ к узлу второго уровня:

$xml->movie[0]->rating

Доступ к атрибуту узла:

$xml->movie[0]->rating['type']
0 голосов
/ 16 ноября 2009

Массив-аксессоры работают только для подключей @attributes.

Вы можете использовать обозначение стрелки для доступа к свойствам:

$simpleXml->name->formatted;

Или приведите SimpleXmlElements по отдельности, чтобы использовать методы доступа к массиву:

$sxa = (array)$simpleXml->profile;
echo $sxa['displayName'];

Если вы идете по маршруту, вы разыгрываете на каждом уровне дополнительные элементы.

0 голосов
/ 16 ноября 2009

Атрибуты в элементах SimpleXML можно отобразить, просто используя метод доступа к массиву.

$simpleXml = ...
$givenName = $simpleXml['givenName'];
...