Getting actual value from PHP SimpleXML node [duplicate]
$value = $simpleXmlDoc->SomeNode->InnerNode;
actually assigns a simplexml object to $value instead of the actual value of InnerNode.
If I do:
$value = $simpleXmlDoc->SomeNode->InnerNode . "\n";
I get the value. Anyway of getting the actual value without the clumsy looking . "\n"
?
Solution 1:
Cast as whatever type you want (and makes sense...). By concatenating, you're implicitly casting to string, so
$value = (string) $xml->someNode->innerNode;
Solution 2:
You don't have to specify innerNode
.
$value = (string) $simpleXmlDoc->SomeNode;
Solution 3:
What about using a typecast, like something like that :
$value = (string)$simpleXmlDoc->SomeNode->InnerNode;
See : type-juggling
Or you can probably use strval(), intval() and all that -- just probably slower, because of the function call.
Solution 4:
Either cast it to a string, or use it in a string context:
$value = (string) $simpleXmlDoc->SomeNode->InnerNode;
// OR
echo $simpleXmlDoc->SomeNode->InnerNode;
See the SimpleXML reference functions guide