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 相关文章推荐
PHP4实际应用经验篇(1)
Oct 09 PHP
php字符串截取中文截取2,单字节截取模式
Dec 10 PHP
fleaphp rolesNameField bug解决方法
Apr 23 PHP
PHP自动重命名文件实现方法
Nov 04 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
Mar 24 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
Mar 17 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
Apr 23 PHP
form表单传递数组数据、php脚本接收的实例
Feb 09 PHP
IIS 7.5 asp Session超时时间设置方法
Apr 17 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
Laravel框架实现超简单的分页效果示例
Feb 08 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 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基础知识:控制结构
2006/12/13 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
php函数式编程简单示例
2019/08/08 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
js 窗口抖动示例
2013/09/04 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
学习JavaScript编程语言的8张思维导图分享
2015/03/27 Javascript
理解js回收机制通俗易懂版
2016/02/29 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
微信小程序 支付后台java实现实例
2017/05/09 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
require.js 加载过程与使用方法介绍
2018/10/30 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
vue项目实现多语言切换的思路
2020/09/17 Javascript
探究Python中isalnum()方法的使用
2015/05/18 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
2017/11/24 Python
python skimage 连通性区域检测方法
2018/06/21 Python
python 解压pkl文件的方法
2018/10/25 Python
Python实现带参数的用户验证功能装饰器示例
2018/12/14 Python
python中metaclass原理与用法详解
2019/06/25 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
Numpy之reshape()使用详解
2019/12/26 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
自荐书范文
2013/12/08 职场文书
党的生日演讲稿
2014/09/10 职场文书
焦裕禄观后感
2015/06/03 职场文书
2015年学校医务室工作总结
2015/07/20 职场文书
python 对图片进行简单的处理
2021/06/23 Python