从PHP SimpleXML节点获取实际值

问题描述:

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

实际上将一个simplexml对象赋值给$ value而不是InnerNode的实际值。从PHP SimpleXML节点获取实际值

如果我做的:

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

我得到的值。无论如何获得实际价值没有笨拙的外观. "\n"

+5

这是回答在http://*.com/questions/416548/forcing-a-simplexml-object-to-a-string-regardless-of-context – null 2009-07-16 14:39:50

按照你想要的任何类型进行投射(并且有意义...)。通过连接,你含蓄地转换为String,所以

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

怎么样使用类型转换,像这样的事情:

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

参见:type-juggling

或者你可以可能使用strval (),intval()等等 - 因为函数调用可能会更慢。

要么将​​它转换为字符串,或在字符串上下文中使用它:

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

SimpleXML reference functions guide

您不必指定innerNode

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