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

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.kler.cn/a/487735.html

相关文章:

  • GO随记:不使用主键id 如何分表与mysql大表
  • 如何从串 ‘ 中国 +86‘ 中,获取到‘中国’:strip()、split()及正则表达式的使用
  • 设计模式与游戏完美开发(3)
  • Vue进阶(贰幺叁)node 版本切换
  • MP4 与Fragmented MP4 (fMP4)的区别
  • LRU(1)
  • NineData云原生智能数据管理平台新功能发布|2024年12月版
  • 基于vue框架的的校园生活服务平台8vwac(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • QT 端口扫描附加功能实现 端口扫描5
  • 新活动平台建设历程与架构演进
  • C#,图论与图算法,任意一对节点之间最短距离的弗洛伊德·沃肖尔(Floyd Warshall)算法与源程序
  • 【Redis源码】 RedisObject结构体
  • 基于Springboot科研工作量管理系统【附源码】
  • MySQL innodb中一条sql的执行流程
  • 时序数据库InfluxDB—介绍与性能测试
  • 服务器数据恢复—raid5故障导致上层ORACLE无法启动的数据恢复案例
  • 社交策略:双重话语与共情之道
  • 漏学Input知识系列之“偷”走了其他窗口的事件pilferPointers
  • 【学习资源】MBSE和工业软件
  • Ollama私有化部署大语言模型LLM
  • 人工智能学习路线全链路解析
  • 基于大数据可视化+django+爬虫的李宁品牌销售数据分析系统设计和实现(源码+论文+部署讲解等)
  • Ubuntu安装vscode
  • 相对误差与相对误差限
  • C++ 多线程异步操作
  • Windows 安装 Docker 和 Docker Compose