当前位置: 首页 > news >正文

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

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

<?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.lryc.cn/news/519548.html

相关文章:

  • net-http-transport 引发的句柄数(协程)泄漏问题
  • 高级软件工程-复习
  • eslint.config.js和.eslintrc.js有什么区别
  • 如何使用MVC模式设计和实现校园自助点餐系统的微信小程序
  • 继续坚持与共勉
  • 人机交互 | 期末复习(上)| 补档
  • Oracle 表分区简介
  • 多并发发短信处理(头条项目-07)
  • 网络编程的进程查看连接描述符信息等
  • ChatGPT API快速搭建自己的第一个应用—文章摘要(单轮对话应用)
  • 【01】AE特效开发制作特技-Adobe After Effects-AE特效制作快速入门-制作飞机,子弹,爆炸特效以及导出png序列图-优雅草央千澈
  • 软件测试预备知识④—NTFS权限管理、磁盘配额与文件共享
  • CI/CD 流水线
  • 【python3】 sqlite格式的db文件获得所有表和数据
  • 【灵码助力安全3】——利用通义灵码辅助智能合约漏洞检测的尝试
  • openEuler 22.04使用yum源最快速度部署k8s 1.20集群
  • Docker Compose 教程
  • opencv的NLM去噪算法
  • scala基础学习_方法函数
  • Android车机DIY开发之软件篇(八)单独编译
  • 【Bug】报错信息:Required request body is missing(包含五种详细解决方案)
  • Docker 专栏 —— Dockerfile 指令详解
  • Spring Boot 项目自定义加解密实现配置文件的加密
  • 在ubuntu下对NFS做性能测试
  • Spring-Cloud-Gateway-Samples,nacos为注册中心,负载均衡
  • StarRocks Awards 2024 年度贡献人物
  • Autoencoder(李宏毅)机器学习 2023 Spring HW8 (Boss Baseline)
  • 深入探索 ScottPlot.WPF:在 Windows 桌面应用中绘制精美图表的利器
  • React中的useMemo 和 useEffect 哪个先执行?
  • 错误修改系列---基于RNN模型的心脏病预测(pytorch实现)