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 相关文章推荐
最省空间的计数器
Oct 09 PHP
3种平台下安装php4经验点滴
Oct 09 PHP
escape unescape的php下的实现方法
Apr 27 PHP
PHP实现定时生成HTML网站首页实例代码
Nov 20 PHP
在PHP中养成7个面向对象的好习惯
Jan 28 PHP
PHP类中Static方法效率测试代码
Oct 17 PHP
PHP中最容易忘记的一些知识点总结
Apr 28 PHP
php抽象类用法实例分析
Jul 07 PHP
php自动识别文字编码并转换为目标编码的方法
Aug 08 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
Sep 21 PHP
php无限极分类实现方法分析
Jul 04 PHP
Laravel 创建指定表 migrate的例子
Oct 09 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
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
一步一步学习PHP(5) 类和对象
2010/02/16 PHP
php运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
2013/02/16 PHP
PHP静态调用非静态方法的应用分析
2013/05/02 PHP
php查看当前Session的ID实例
2015/03/16 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
再谈Yii Framework框架中的事件event原理与应用
2020/04/07 PHP
基于jquery的让textarea自适应高度的插件
2010/08/03 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
js原型链与继承解析(初体验)
2016/05/09 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
使用vant的地域控件追加全部选项
2020/11/03 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
python安装与使用redis的方法
2016/04/19 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
特色冷饮店创业计划书
2014/01/28 职场文书
慈善晚会策划方案
2014/05/14 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
用人单位聘用意向书
2015/05/11 职场文书
Nginx如何获取自定义请求header头和URL参数详解
2022/07/23 Servers