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

news/2025/1/13 10:18:23/

 本文介绍如何使用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
)
 

完美 


http://www.ppmy.cn/news/1562783.html

相关文章

状态模式详解

状态模式详解 1. 定义与特点 状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许一个对象在其内部状态改变时改变其行为。这种模式通过将每个状态封装为一个单独的类来实现状态的转换。状态模式的主要特点是将对象的行为和状态相关联&#…

谷歌浏览器的音视频播放设置与优化

在数字媒体时代&#xff0c;音视频内容已成为人们日常生活中不可或缺的一部分。作为最流行的网络浏览器之一&#xff0c;谷歌浏览器凭借其强大的功能和灵活的设置选项&#xff0c;为用户提供了卓越的音视频播放体验。本文将详细介绍如何通过优化谷歌浏览器设置来提升音视频播放…

【Flink】flink或java异常日志输出不完整问题解决

flink或java异常日志输出不完整问题解决 1.问题 flink submit job&#xff0c;报错查看日志&#xff0c;只有Caused by: java.lang.ClassCastException&#xff0c;异常详情没有&#xff0c; 2.网上参考 参考了网上的几个解决方案&#xff0c;比较精准的如下&#xff1a; https…

【Pandas】pandas Series rdiv

Pandas2.2 Series Binary operator functions 方法描述Series.add()用于对两个 Series 进行逐元素加法运算Series.sub()用于对两个 Series 进行逐元素减法运算Series.mul()用于对两个 Series 进行逐元素乘法运算Series.div()用于对两个 Series 进行逐元素除法运算Series.true…

java导出pdf文件

java导出pdf&#xff0c;前端下载 1、制作pdf模板2、获取pdf导出中文需要的文件3、实现4、前端发起请求并生成下载链接 使用注意点 因为原来制作的pdf表单内容过于复杂&#xff0c;下面代码只包含前两行的操作。 本次操作需要前端向后端发起请求&#xff0c;后端返回数据给前端…

Spring Web 嵌套对象校验失效

问题复现 当开发一个学籍管理系统时&#xff0c;我们会提供了一个 API 接口去添加学生的相关信息&#xff0c;学生中有个嵌套属性联系电话&#xff0c;其对象定义参考下面的代码&#xff1a; import lombok.Data; import javax.validation.constraints.Size; Data public class…

红队工具使用全解析:揭开网络安全神秘面纱一角

红队工具使用全解析&#xff1a;揭开网络安全神秘面纱一角 B站红队公益课&#xff1a;https://space.bilibili.com/350329294 学习网盘资源链接&#xff1a;https://pan.quark.cn/s/4079487939e8 嘿&#xff0c;各位网络安全爱好者们&#xff01;在风云变幻的网络安全战场上&am…

【C++入门】详解(中)

目录 &#x1f495;1.函数的重载 &#x1f495;2.引用的定义 &#x1f495;3.引用的一些常见问题 &#x1f495;4.引用——权限的放大/缩小/平移 &#x1f495;5. 不存在的空引用 &#x1f495;6.引用作为函数参数的速度之快&#xff08;代码体现&#xff09; &#x1f4…