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

)

完美

相关推荐
Json____1 小时前
PHP 突发严重安全漏洞,AI 开始改变网络安全的攻防方式
人工智能·web安全·php·it学习·wwwoop.com
catchadmin1 小时前
PHP 8.7 协程新提案 让跨协程代码共享请求身份
开发语言·php
Web极客码2 小时前
我用 Claude 分析 Redis 哨兵日志,实现跨机房数据不一致自动对齐
数据库·redis·php
xuefeiniao3 小时前
PHP2Shell漏洞修复
运维·服务器·php
ServBay3 小时前
AI说代码没漏洞?马上被 PHP 打脸了
aigc·php·ai编程
tq10865 小时前
对PHP漏洞的思考
php
wangruofeng5 小时前
黑色十月:AI 找到的漏洞,两小时数十万次利用
人工智能·安全·php
陌陌龙8 小时前
【紧急预警!PHP 核弹级漏洞 php2shell】
开发语言·php
企业解惑小能手-域智盾系统9 小时前
内网监控软件策略不生效、日志缺失?一套从现象到根因的排查框架
开发语言·php·域智盾
manageengine10 小时前
PHP2Shell 事件复盘:企业应该如何自查、修复与规模化处置
运维·安全·php