假设我有一些这样的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) );

但这看起来很难看.

What's the best way to force a SimpleXML object to a string, regardless of context?

推荐答案

Typecast the SimpleXMLObject to a string:

$foo = array( (string) $xml->channel->item->title );

上面的代码在内部调用SimpleXMLObject上的__toString().该方法不是公开可用的,因为它干扰了SimpleXMLObject的映射方案,但是仍然可以通过上面的方式调用它.

Php相关问答推荐

为什么注册SIGHUP的处理程序函数会阻止在PHP CLI中等待输入时点击X关闭Xterm窗口?""

如何优化-PHP 7.3.14+Laravel 6

一列必须指定多个变量的Laravel查询

从WC会话变量更改WooCommerce checkout 托运方法成本

在WooCommerce我的帐户部分添加带有自定义链接的自定义菜单项

如何在php中生成包含第100秒的时间序列?

WooCommerce在购买后多次重定向

免费送货柜台,考虑到折扣码

筛选器具有多个查询之一

从两个日期创建日期范围,然后为范围中的每个日期复制子数组

PHP -将字符串拆分为两个相等的部分,但第二个字符串中的单词更多

Mac 上安装 php 时出现 Homebrew 错误

多个产品类别 Select 自定义 WooCommerce 插件设置页面

在 Heroku 上部署 Sylius - 路由不正确

使用 Laravel 和 Vue 进行图像表单验证

根据页面的最后修订日期设置 MediaWiki 内部链接的样式

PHP Symfony 在测试.env文件中将接口自动装配作为构造函数参数,但使用接口的特定类

使用 PHP 正则表达式从仅包含具有现有顺序的顶级标签的 XML 文档中搜索和创建数组

PHP for each 函数打印 td

Google Drive - 仅使用 FileID 获取文件的 FileSize