全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

php怎么获取xml数据转换成数组_php xml转数组simplexml_load_string法【教程】

SimpleXML 提供四种 XML 转数组方法:一、simplexml_load_string()+JSON 中转;二、递归遍历 SimpleXMLElement;三、DOMDocument 提取特定节点;四、使用 spatie/array-xml 库双向转换。

如果您需要将 XML 格式的数据解析为 PHP 可操作的数组结构,SimpleXML 扩展提供了一种轻量且常用的方式。以下是使用 simplexml_load_string() 将 XML 字符串转换为数组的具体方法:

一、使用 simplexml_load_string() + json_encode() + json_decode()

该方法利用 SimpleXML 解析 XML 字符串生成对象,再通过 JSON 中转实现对象到关联数组的转换,适用于结构较清晰、无重复同名子节点的 XML。

1、调用 simplexml_load_string() 解析 XML 字符串,返回 SimpleXMLElement 对象。

2、使用 json_encode() 将该对象序列化为 JSON 字符串。

3、使用 json_decode() 并传入第二个参数 true,将 JSON 字符串解码为关联数组。

4、若需处理 CDATA 或属性,应在解析前确保 XML 声明完整且编码一致(如 UTF-8)。

二、递归遍历 SimpleXMLElement 转换为数组

该方法不依赖 JSON 扩展,通过自定义递归函数逐层提取节点名、文本内容和属性,可精确控制数组键名与结构,支持含重复子节点和属性的 XML。

1、定义名为 xml_to_array() 的递归函数,接收 SimpleXMLElement 对象为参数。

2、初始化空数组,遍历当前元素的所有子节点,对每个子节点调用自身进行递归处理。

3、对当前节点的属性调用 ->attributes() 方法并转换为键值对存入数组

4、若子节点名在当前层级重复出现,则将对应值组织为数值索引数组而非覆盖。

三、使用 DOMDocument + getElementsByTagName() 提取特定节点

当仅需提取 XML 中部分指定标签的内容(如所有 ),且不要求完整树形结构时,DOMDocument 更具选择性和容错性,尤其适合格式不规范的 XML。

1、实例化 DOMDocument 对象,并调用 loadXML() 加载 XML 字符串。

2、使用 getElementsByTagName() 获取目标节点列表。

3、遍历节点列表,对每个节点调用 nodeValue 获取文本内容,或使用 getAttribute() 读取属性值。

4、将提取结果按需组装为索引数组或关联数组。

四、使用外部库:spatie/array-xml

该 Composer 包提供双向 XML/数组转换能力,自动处理命名空间、属性、文本混合内容及重复节点,适合中大型项目中频繁进行格式互转的场景。

1、执行 composer require spatie/array-to-xml 安装扩展包。

2、引入 ArrayToXml 类,调用 ArrayToXml::convert() 将数组转为 XML;反向使用 XmlToArray::convert() 解析 XML 字符串。

3、传递选项数组控制是否保留属性前缀、是否忽略空值等行为。

4、确保输入 XML 字符串符合 well-formed 规范,否则抛出异常。


# php  # js  # json  # node  # composer  # 编码  # 递归函数  # 键值对  # Array  # 关联数组  # 命名空间  # require  # xml  # simpleXML  # 字符串  # 递归  # 对象  # 遍历  # 转换为  # 适用于  # 第二个  # 自定义  # 应在  # 四种  # 而非  # 您需要 


相关文章: 免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  建站三合一如何选?哪家性价比更高?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  香港服务器部署网站为何提示未备案?  如何在万网自助建站平台快速创建网站?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  MySQL查询结果复制到新表的方法(更新、插入)  TestNG的testng.xml配置文件怎么写  视频网站app制作软件,有什么好的视频聊天网站或者软件?  ,网页ppt怎么弄成自己的ppt?  如何在七牛云存储上搭建网站并设置自定义域名?  如何自定义建站之星模板颜色并下载新样式?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  如何获取上海专业网站定制建站电话?  建站之星好吗?新手能否轻松上手建站?  网站制作公司排行榜,抖音怎样做个人官方网站  如何快速重置建站主机并恢复默认配置?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  如何选择高效稳定的ISP建站解决方案?  建站之星后台密码遗忘?如何快速找回?  如何生成腾讯云建站专用兑换码?  开封网站制作公司,网络用语开封是什么意思?  常州企业网站制作公司,全国继续教育网怎么登录?  如何通过虚拟主机空间快速建站?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  建站之星安装失败:服务器环境不兼容?  如何选择美橙互联多站合一建站方案?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在云主机上快速搭建网站?  建站主机默认首页配置指南:核心功能与访问路径优化  如何在IIS中新建站点并配置端口与物理路径?  建站主机类型有哪些?如何正确选型  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  建站之星与建站宝盒如何选择最佳方案?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  如何通过智能用户系统一键生成高效建站方案?  如何高效完成独享虚拟主机建站?  建站之星上传入口如何快速找到?  建站之星免费模板:自助建站系统与智能响应式一键生成  宿州网站制作公司兴策,安徽省低保查询网站?  如何用AWS免费套餐快速搭建高效网站?  如何高效配置IIS服务器搭建网站?  如何快速生成可下载的建站源码工具?  Android自定义控件实现温度旋转按钮效果  学校建站服务器如何选型才能满足性能需求?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  中山网站推广排名,中山信息港登录入口? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。