php simplexmlelement array,php中SimpleXMLElement 对象转换为数组
PHP 提供了 simplexml_load_string 方法用来解析 XML 格式的字符串,并返回 SimpleXMLElement 对象,不过一般数组是更为适用的,所以也会有转换为普通数组的需求,这个方法测试完全奏效,支持 SimpleXMLElement 对象多层嵌套的情况.
提供两个参数,第一个参数为 SimpleXMLElement 对象,第二个参数为布尔值,控制最终返回值是否包含根节点,代码如下:<?php
function xmlToArr($xml, $root = true) {
if (!$xml->children()) {
return (string)$xml;
}
$array = array();
foreach ($xml->children() as $element => $node) {
$totalElement = count($xml->{$element});
if (!isset($array[$element])) {
$array[$element] = "";
}
// Has attributes
if ($attributes = $node->attributes()) {
$data = array(
'attributes' => array() ,
'value' => (count($node) > 0) ? $this->__xmlToArr($node, false) : (string)$node
);
foreach ($attributes as $attr => $value) {
$data['attributes'][$attr] = (string)$value;
}
if ($totalElement > 1) {
$array[$element][] = $data;
} else {
$array[$element] = $data;
}
// Just a value
} else {
if ($totalElement > 1) {
$array[$element][] = $this->__xmlToArr($node, false);
} else {
$array[$element] = $this->__xmlToArr($node, false);
}
}
}
if ($root) {
return array(
$xml->getName() => $array
);
} else {
return $array;
}
}
?>
随便收藏,请保留本文地址!
php simplexmlelement array,php中SimpleXMLElement 对象转换为数组相关推荐
- sqlAlchemy中的对象转换为dict
sqlAlchemy中的对象转换为dict 假设数据库里有一张post表,其中一种方法就是 p = session.query(Post).first() p.__dict__ 但由于p是sqlAlc ...
- php对象如何转化为数组,php如何将对象转换为数组
php将对象转换为数组的方法是:可以先通过is_object()函数进行判断,然后进行强制类型转换.is_object()函数用于检测变量是否是一个对象.具体转换方法:[$arr = (array)( ...
- php怎么创建对象数组对象数组对象,在PHP中把对象当数组使用
在PHP中把对象当数组使用 我们了解,JAVASCRIPT中,对象的属性.方法,是可以用数组的模式来访问的.但通常情况下是不可能的. 为什么要这么做?这是因为,通过这一方式,可以更加方便地操作对象,我 ...
- 【性能优化】面试官:Java中的对象和数组都是在堆上分配的吗?
写在前面 从开始学习Java的时候,我们就接触了这样一种观点:Java中的对象是在堆上创建的,对象的引用是放在栈里的,那这个观点就真的是正确的吗?如果是正确的,那么,面试官为啥会问:"Jav ...
- 微信小程序更新二维数组中的对象或数组的属性值
微信小程序更新二维数组中的对象或数组的属性值,这里可能有两种情况 1.微信小程序更新二维数组中的对象的属性值 更新二维数组中的某个对象的属性值,代码如下 js 代码 data: {familys:[{ ...
- vue中检测对象和数组值变化的问题
今天工作中遇到改变vue data中某个对象的值,却无法触发视图更新的问题.看了看官方文档,怎么解决的呢? 1.检测对象的变化 受现代 JavaScript 的限制(以及废弃 Object.obse ...
- vue中插值语法中v-for() of 与v-for() in 遍历对象数组的异同,以及for in for of在方法中遍历对象和数组的异同
写这个的目的是记录下Vue中使用v-for-in v-for-of遍历对象与遍历数组的区别,以及JS中使用for-in for-of 遍历对象和数组的区别. 直接说结论,节约大家时间,下面是推论,有时 ...
- 将json对象转换为数组,获取json对象的属性值
需求:做工作流项目时,需将节点数据取出,但是数据不是数组格式,不好取数据,转换为数组, 关键代码: Object.keys(nodeArr[j]) 获取数组名 obj[keyname].type 获取 ...
- C#中String对象转换为Font对象的方法
FontConverter fc = new FontConverter(); //转换为文本形式 string strf= fc.ConvertToI ...
最新文章
- 如何零门槛搭建实时音视频通信平台
- springboot+vue在线音乐网站
- java selenium验证元素是否存在
- Parallel Query Bitmap
- rules不显示 vue_使用stylelint规范vue项目
- hdu 5266(线段树+LCA)
- DIV的边距属性在Chrome和IE中的区别
- 技术人必备的碎片化时间学习工具
- 【渝粤题库】国家开放大学2021春2312旅行社经营管理题目
- Gartner数据劲爆:阿里全球第三,华为中国第二!
- mysql互为主从 keep_KeepAlived+MySQL互为主从
- python填充数组到指定长度
- 自然语言处理技术在推荐系统中的应用和发展(附交流视频和PPT下载链接)
- 博客园博客美化相关文章目录
- js 中添加php数组,浅谈javascript中数组Array的添加/删除操作
- Python学习Day14
- 自动化查询及增加配置参数功能
- 为什么Word 里表格文字无法垂直居中?明明已经设置垂直居中了
- springboot中@SpringBootApplication的扫描范围,以及多模块的扫描问题
- elementUI Tree组件实现双击事件
热门文章
- 下面哪个对象能代表当前的HTML文件,华师网络学院作业答案-WEB程序设计选择题...
- echarts 其他样式 折线 重叠_echarts 折线图 areaStyle颜色重叠问题
- linux bind mysql_linux下安装mysql
- java replace stringbuilder_JAVA 中Stringbuilder类的方法
- 计划任务执行 php代码,php实现Windows任务计划定时执行的代码以及扩展(图)
- PERCONA-TOOLKIT 安装
- 局域网ssr转pptp_[网络技术][转]PPTP连接过程
- Ssm角色权限后台管理实战开发
- 基于JAVA+SpringMVC+MYSQL的求职招聘管理系统
- 基于JAVA+SpringMVC+MYSQL的便利店运营管理系统