【发布时间】:2010-09-29 19:33:23
【问题描述】:
假设我有一些这样的 XML
<channel>
<item>
<title>This is title 1</title>
</item>
</channel>
下面的代码做了我想要的,它将标题作为字符串输出
$xml = simplexml_load_string($xmlstring);
echo $xml->channel->item->title;
这是我的问题。下面的代码在该上下文中不将标题视为字符串,因此我最终在数组中使用 SimpleXML 对象而不是字符串。
$foo = array( $xml->channel->item->title );
我一直在这样解决它
$foo = array( sprintf("%s",$xml->channel->item->title) );
但这看起来很难看。
无论上下文如何,将 SimpleXML 对象强制为字符串的最佳方法是什么?
【问题讨论】:
-
我已经向 PHP 提交了多个请求,以为此实现类似于 SOAP_SINGLE_ELEMENT_ARRAYS 的东西,并鼓励其他人也这样做。 SOAP_SINGLE_ELEMENT_ARRAYS 强制 / 可能 / 包含多个字符串的元素始终被解析为字符串。当然,正如其他人提到的,你需要知道你得到了什么,但是我一次又一次地遇到了 .NET SOAP 服务器的问题,WSDL (通过 .NET 的“魔术”默认值)将每个字符串原型化为混合或字符串数组。而不是 current()'ing 或 typecasting,该位只返回一个字符串