加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php simpleXMLElement to array:null value

发布时间:2020-12-13 13:20:03 所属栏目:PHP教程 来源:网络整理
导读:我有以下 XML: account id123/id email/email statusACTIVE/status/account 我想把它作为一个数组变量.因此我用$xml = simplexml_load_file()读取它.将simpleXMLElement转换为关联数组的最简单方法是使用:json_decode(json_encode((array)$xml),1); 问题是
我有以下 XML:
<account>
    <id>123</id>
    <email></email>
    <status>ACTIVE</status>
</account>

我想把它作为一个数组变量.因此我用$xml = simplexml_load_file()读取它.将simpleXMLElement转换为关联数组的最简单方法是使用:json_decode(json_encode((array)$xml),1);

问题是我不想将电子邮件密钥作为空数组,而是作为NULL值.作为SimpleXMLElement,它看起来像:

public 'email' => 
    object(SimpleXMLElement)[205]

而在数组中它看起来像:

'email' => 
    array (size=0)
      empty

我想得到:

'email' => NULL

实现这一点的唯一方法我想到的是遍历所有元素并用空值替换空数组.问题是我的XML更大(上面只是解释问题)而且我必须迭代很多XML元素(这将是手工工作 – 我正在寻找一些自动化的东西).也许我错过了其中一个功能中的一些选项…或者可能还有另一个技巧可以做到这一点?

我无法添加评论,但我认为这对您有用,它应该比正则表达式或循环更快:
//after you json_encode,before you decode
$str = str_replace(':[]',':null',json_encode($array));

JSON中的空数组由“[]”表示.有时,数组被解析为对象,在这种情况下(或作为后备),您也可以替换“:{}”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读