从 PHP SimpleXML 节点获取实际值 [重复]

Posted

技术标签:

【中文标题】从 PHP SimpleXML 节点获取实际值 [重复]【英文标题】:Getting actual value from PHP SimpleXML node [duplicate] 【发布时间】:2010-11-11 03:50:56 【问题描述】:
$value = $simpleXmlDoc->SomeNode->InnerNode;

实际上将simplexml对象分配给$value,而不是InnerNode的实际值。

如果我这样做:

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

我得到了价值。无论如何,如果没有笨拙的. "\n",就可以获得实际价值吗?

【问题讨论】:

这是在***.com/questions/416548/…回答的 【参考方案1】:

投射为您想要的任何类型(并且有意义......)。通过连接,您隐式转换为字符串,所以

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

【讨论】:

【参考方案2】:

您不必指定innerNode

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

【讨论】:

【参考方案3】:

使用类型转换怎么样,比如:

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

见:type-juggling

或者您也可以使用 strval()、intval() 和所有这些 - 只是可能更慢,因为函数调用。

【讨论】:

【参考方案4】:

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

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

见SimpleXML reference functions guide

【讨论】:

以上是关于从 PHP SimpleXML 节点获取实际值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

SimpleXML 和 php - 获取包含与另一个节点匹配的文本的节点

在simpleXML中获取节点和子节点文本值

使用 SimpleXML/DOM 通过 php 将节点从一个 XML 复制到另一个

使用 simplexml 获取 XML 文档的根节点

simpleXML 从 CDATA 获取值 [重复]

PHP:simplexml_load_file 从使用 UTF-8 编码的 XML 文件中获取奇怪的字符