PHP中simplexml_load_string函数使用说明


Posted in PHP onJanuary 01, 2011

先用一段代码重现一下问题
乍一看,结果很让人费解:

<?php 
$string = <<<EOF 
<data> 
<foo><bar>hello</bar></foo> 
<foo><bar>world</bar></foo> 
</data> 
EOF; $data = simplexml_load_string($string); 
print_r($data); 
print_r($data->foo); 
?>

乍一看,结果很让人费解:
SimpleXMLElement Object 
( 
[foo] => Array 
( 
[0] => SimpleXMLElement Object 
( 
[bar] => hello 
) 
[1] => SimpleXMLElement Object 
( 
[bar] => world 
) 
) 
) 
SimpleXMLElement Object 
( 
[bar] => hello 
)

明明print_r显示foo是一个有两个bar元素的数组,但是最后却仅仅显示了一个bar元素!
原因其实很简单,在如上所示simplexml_load_string的结果里,foo并不是数组,而是一个迭代对象!
可以这样确认:
foreach ($data->foo as $v) print_r($v); 
foreach ($data->children() as $v) print_r($v);

看来,print_r或者var_dump之类的表象并不完全可信,自己多留心吧。
PHP 相关文章推荐
小文件php+SQLite存储方案
Sep 04 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
Jul 03 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
Aug 13 PHP
PHP代码优化之成员变量获取速度对比
Feb 28 PHP
PHP中的Memcache详解
Apr 05 PHP
php5.3不能连接mssql数据库的解决方法
Dec 27 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
Aug 12 PHP
Docker配置PHP开发环境教程
Dec 21 PHP
php使用parse_str实现查询字符串解析到变量中的方法
Feb 17 PHP
PHP实现的简单路由和类自动加载功能
Mar 13 PHP
laravel ORM关联关系中的 with和whereHas用法
Oct 16 PHP
PHP后门隐藏的一些技巧总结
Nov 04 PHP
php xml 入门学习资料
Jan 01 #PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Dec 29 #PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 #PHP
window+nginx+php环境配置 附配置搭配说明
Dec 29 #PHP
php防攻击代码升级版
Dec 29 #PHP
php 传值赋值与引用赋值的区别
Dec 29 #PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
Dec 29 #PHP
You might like
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
PHP正则判断一个变量是否为正整数的方法
2019/02/27 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
js 数组操作代码集锦
2009/04/28 Javascript
JavaScript 字符串乘法
2009/08/20 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
js常用代码段收集
2011/10/28 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
AngularJS基础 ng-list 指令详解及示例代码
2016/08/02 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
2017/01/11 Javascript
原生js实现验证码功能
2017/03/16 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
手把手教你如何编译打包video.js
2020/12/09 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
Django如何配置mysql数据库
2018/05/04 Python
基于django传递数据到后端的例子
2019/08/16 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
摄影展策划方案
2014/06/02 职场文书
加油口号大全
2014/06/13 职场文书
参赛口号
2014/06/16 职场文书
法学专业求职信
2014/07/15 职场文书
2014年终工作总结范本
2014/12/15 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
2019秋季运动会口号
2019/06/25 职场文书
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis
Elasticsearch 数据类型及管理
2022/04/19 Python