web-dev-qa-db-fra.com

Obtenir la valeur réelle de PHP Noeud SimpleXML

$value = $simpleXmlDoc->SomeNode->InnerNode;

affecte en fait un objet simplexml à $ value au lieu de la valeur réelle de InnerNode.

Si je fais:

$value = $simpleXmlDoc->SomeNode->InnerNode . "\n";

J'obtiens la valeur. Quoi qu'il en soit pour obtenir la valeur réelle sans avoir l'air maladroit . "\n"?

35
James

Diffusez comme vous voulez (et c'est logique ...). En concaténant, vous transformez implicitement en chaîne, donc

$value = (string) $xml->someNode->innerNode;
80
Greg

Vous n'avez pas besoin de spécifier innerNode.

$value = (string) $simpleXmlDoc->SomeNode;

19
David

Qu'en est-il de l'utilisation d'un transtypage, comme quelque chose comme ça:

$value = (string)$simpleXmlDoc->SomeNode->InnerNode;

Voir: jonglage de type

Ou vous pouvez probablement utiliser strval (), intval () et tout ça - probablement plus lentement, à cause de l'appel de fonction.

4
Pascal MARTIN

Vous pouvez soit le convertir en chaîne, soit l'utiliser dans un contexte de chaîne:

$value = (string) $simpleXmlDoc->SomeNode->InnerNode;
// OR
echo $simpleXmlDoc->SomeNode->InnerNode;

Voir le Guide des fonctions de référence SimpleXML

3
PatrikAkerstrand