PHP使用DOM和simplexml读取xml文档的方法示例


Posted in PHP onFebruary 08, 2017

本文实例讲述了PHP使用DOM和simplexml读取xml文档的方法。分享给大家供大家参考,具体如下:

实例  用DOM获取下列xml文档中所有金庸小说的书名,该xml文档所在位置为 ./books.xml:

<?xml version="1.0" encoding="utf-8"?>
<root>
 <book>
  <title>天龙八部</title>
  <author>金庸</author>
 </book>
 <book>
  <title>陆小凤</title>
  <author>古龙</author>
 </book>
 <book>
  <title>倚天屠龙记</title>
  <author>金庸</author>
 </book>
 <book>
  <title>西游记</title>
  <author>吴承恩</author>
 </book>
 <book>
  <title>神雕侠侣</title>
  <author>金庸</author>
 </book>
 <book>
  <title>射雕英雄传</title>
  <author>金庸</author>
 </book>
</root>

用DOM代码实现:

DOM读取xml文档步骤:1、创建DOM对象——》2、载入DOM文档内容——》3、截取要读取内容所在的标签——》获得要读取的内容。

header('Content-type:text/html;charset=utf-8');
$arr=array();
$dom = new DOMDocument();//创建DOM对象
$dom->load('./books.xml');//载入xml文档
print_r($dom);
echo '<hr>';
$dom = $dom->getElementsByTagName('book');//截取标签
for($i=0;$i<$dom->length;$i++){
 if($dom->item($i)->childNodes->item(1)->childNodes->item(0)->wholeText=='金庸'){
  $arr[] = $dom->item($i)->childNodes->item(0)->childNodes->item(0)->wholeText.'<br />';//获取内容
 }
}
print_r($arr);

使用 getElementsByTagName 和 childNodes 后返回的都是对象,所以它们后面必须使用 item(int),哪怕它们返回的对象里面只包含一个项目,也必须用item(0)来指定,否则就会出错。

用simplexml代码实现:

$simxml = simplexml_load_file('./books.xml');
$t = $simxml->book;
$arr=array();
foreach ($t as $v){
 if($v->author=='金庸'){
  $arr[] = (string)$v->title;
 }
}
print_r($arr);

使用 simplexml_load_file 后返回的是对象,该对象里的项目既有对象又有数组,不管是对象还是数组,要循环里面的内容都可以用 foreach。该实例最后获取的内容 $v->title 其实是个对象,所以要用 string 转化为字符串。

PHP 相关文章推荐
15个小时----从修改程序到自己些程序
Oct 09 PHP
php截取后台登陆密码的代码
May 05 PHP
腾讯QQ微博API接口获取微博内容
Oct 30 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
Jun 10 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
php自动更新版权信息显示的方法
Jun 19 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
PHP高精确度运算BC函数库实例详解
Aug 15 PHP
PHP实现重载的常用方法实例详解
Oct 18 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
Laravel框架路由管理简单示例
May 07 PHP
PHP判断数组是否为空的常用方法(五种方法)
Feb 08 #PHP
PHP基于DOM创建xml文档的方法示例
Feb 08 #PHP
PHP输出XML格式数据的方法总结
Feb 08 #PHP
PHP中大括号'{}'用法实例总结
Feb 08 #PHP
Yii CFileCache 获取不到值的原因分析
Feb 08 #PHP
php实现连接access数据库并转txt写入的方法
Feb 08 #PHP
php unicode编码和字符串互转的方法
Aug 12 #PHP
You might like
PHP 5.3.0 安装分析心得
2009/08/07 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
JavaScript经典效果集锦
2010/07/06 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
jQuery.extend 函数的详细用法
2012/06/27 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
jQuery操作cookie
2016/08/08 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
Python采集腾讯新闻实例
2014/07/10 Python
python中的字典详细介绍
2014/09/18 Python
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
Python做简单的字符串匹配详解
2017/03/21 Python
Python实现PS图像明亮度调整效果示例
2018/01/23 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
Python格式化输出%s和%d
2018/05/07 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
浅谈PyTorch中in-place operation的含义
2020/06/27 Python
python缩进长度是否统一
2020/08/02 Python
英国最大的在线运动补充剂商店:Discount Supplements
2017/06/03 全球购物
应届生法律求职信
2013/10/22 职场文书
党员反腐倡廉学习心得体会
2015/08/15 职场文书