41
$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"?

1

4 Answers 4

88

Cast as whatever type you want (and makes sense...). By concatenating, you're implicitly casting to string, so

$value = (string) $xml->someNode->innerNode;
Sign up to request clarification or add additional context in comments.

Comments

21

You don't have to specify innerNode.

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

Comments

5

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.

Comments

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.