php 使用simplexml_load_string转换xml数据格式失败

本文介绍如何使用php函数解析xml数据为数组。

php 复制代码
<?php

$a = '<xml><ToUserName><![CDATA[ww8b77afac71336111]]></ToUserName><FromUserName><![CDATA[sys]]></FromUserName><CreateTime>1736328669</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[change_external_contact]]></Event><ChangeType><![CDATA[del_external_contact]]></ChangeType><UserID><![CDATA[Xu]]></UserID><ExternalUserID><![CDATA[woh0dIDAAA4kq6S_aXw1UkX7_qXb22ng]]></ExternalUserID></xml>';

$xmlObject = simplexml_load_string($a,'SimpleXMLElement', LIBXML_NOBLANKS);
$json = json_encode($xmlObject);
var_dump($json);
$array = json_decode($json, true);
print_r($array);

打印后发现xml内容中带有CDATA的好像不能正常解析

string(133) "{"ToUserName":{},"FromUserName":{},"CreateTime":"1736328669","MsgType":{},"Event":{},"ChangeType":{},"UserID":{},"ExternalUserID":{}}"

Array

(

ToUserName => Array

(

)

FromUserName => Array

(

)

CreateTime => 1736328669

MsgType => Array

(

)

Event => Array

(

)

ChangeType => Array

(

)

UserID => Array

(

)

ExternalUserID => Array

(

)

)

期初我以为是这个函数有问题,随后我查阅了官方文档,https://www.php.net/manual/zh/libxml.constants.php

看起来不错,我来替换下尝试一下

string(239) "{"ToUserName":"ww8b77afac713361bd","FromUserName":"sys","CreateTime":"1736328669","MsgType":"event","Event":"change_external_contact","ChangeType":"del_external_contact","UserID":"XuBin","ExternalUserID":"woh0dIDAAA4kq6S_aXw1UkX7_qXb22ng"}"

Array

(

ToUserName => ww8b77afac71336111

FromUserName => sys

CreateTime => 1736328669

MsgType => event

Event => change_external_contact

ChangeType => del_external_contact

UserID => Xu

ExternalUserID => woh0dIDAAA4kq6S_aXw1UkX7_qXb22ng

)

完美

相关推荐
Ether IC Verifier6 小时前
SystemVerilog 数据类型详解
php·systemverilog·uvm·ic验证
弥树子6 小时前
踩坑记录:服务器内网调用接口,真实请求URL与官方公开URL不一致问题排查
开发语言·php
AugustRed8 小时前
Linux 运维常用命令大全(超全速查表)
运维·网络·php
剑神一笑15 小时前
Linux lsof 命令深度解析:从文件描述符到进程追踪
linux·运维·php
BingoGo15 小时前
免费可商用 PHP 管理后台 CatchAdmin V5.3.1 发布 后台打包直降 5s 内
后端·php
JaguarJack15 小时前
免费可商用 PHP 管理后台 CatchAdmin V5.3.1 发布 后台打包直降 5s 内
后端·php·laravel
ELI_He99916 小时前
Laravel Sail
php·laravel
傻啦嘿哟18 小时前
解决DNS污染:防止OpenClaw解析API域名到虚假地址
开发语言·php
dualven_in_csdn20 小时前
cmd切换到powershell (一)
服务器·开发语言·php
Cheng小攸20 小时前
实验九:防火墙安全认证和审计实验
开发语言·安全·php