php读取XML的常见方法实例总结


Posted in PHP onApril 25, 2017

本文实例讲述了php读取XML的常见方法。分享给大家供大家参考,具体如下:

xml源文件

<?xml version="1.0 encoding="UTF-8"?>
<humans>
   <zhangying>
     <name>张映</name>
     <sex>男</sex>
     <old>28</old>
   </zhangying>
   <tank>
     <name>tank</name>
     <sex>男</sex>
     <old>28</old>
   </tank>
</humans>

1)DOMDocument读取xml

<?php
   $doc = new DOMDocument();
   $doc->load('person.xml'); //读取xml文件
   $humans = $doc->getElementsByTagName( "humans" ); //取得humans标签的对象数组
   foreach( $humans as $human )
   {
     $names = $human->getElementsByTagName( "name" ); //取得name的标签的对象数组
     $name = $names->item(0)->nodeValue; //取得node中的值,如<name> </name>
     $sexs = $human->getElementsByTagName( "sex" );
     $sex = $sexs->item(0)->nodeValue;
     $olds = $human->getElementsByTagName( "old" );
     $old = $olds->item(0)->nodeValue;
     echo "$name - $sex - $old\n";
   }
?>

2)simplexml读取xml

<?php
   $xml_array=simplexml_load_file('person.xml'); //将XML中的数据,读取到数组对象中
   foreach($xml_array as $tmp){
     echo $tmp->name."-".$tmp->sex."-".$tmp->old."<br>";
   }
?>

3)用php正则表达式来读取数据

<?php
   $xml = "";
   $f = fopen('person.xml', 'r');
   while( $data = fread( $f, 4096 ) ) {
     $xml .= $data;
   }
   fclose( $f );
   // 上面读取数据
   preg_match_all( "/\<humans\>(.*?)\<\/humans\>/s", $xml, $humans ); //匹配最外层标签里面的内容
   foreach( $humans[1] as $k=>$human )
   {
     preg_match_all( "/\<name\>(.*?)\<\/name\>/", $human, $name ); //匹配出名字
     preg_match_all( "/\<sex\>(.*?)\<\/sex\>/", $human, $sex ); //匹配出性别
     preg_match_all( "/\<old\>(.*?)\<\/old\>/", $human, $old ); //匹配出年龄
   }
   foreach($name[1] as $key=>$val){
     echo $val." - ".$sex[$key][1]." - ".$old[$key][1]."<br>" ;
   }
?>

4)xmlreader来读取xml数据

<?php
   $reader = new XMLReader();
   $reader->open('person.xml'); //读取xml数据
   $i=1;
   while ($reader->read()) { //是否读取
     if ($reader->nodeType == XMLReader::TEXT) { //判断node类型
       if($i%3) {
         echo $reader->value; //取得node的值
       } else {
         echo $reader->value."<br>" ;
       }
       $i++;
     }
   }
?>
PHP 相关文章推荐
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
Jul 03 PHP
php 网上商城促销设计实例代码
Feb 17 PHP
解析Ubuntu下crontab命令的用法
Jun 24 PHP
php中$_POST与php://input的区别实例分析
Jan 07 PHP
ThinkPHP3.2.3数据库设置新特性
Mar 05 PHP
PHP设置Cookie的HTTPONLY属性方法
Feb 09 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
May 26 PHP
Laravel学习教程之model validation的使用示例
Oct 23 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
PhpStorm本地断点调试的方法步骤
May 21 PHP
laravel中的fillable和guarded属性详解
Oct 23 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 #PHP
PHP中的正则表达式实例详解
Apr 25 #PHP
PHP利用二叉堆实现TopK-算法的方法详解
Apr 24 #PHP
关于PHP定时发送服务的解决办法
Apr 23 #PHP
php读取和保存base64编码的图片内容
Apr 22 #PHP
PHP7多线程搭建教程
Apr 21 #PHP
mac系统下安装多个php并自由切换的方法详解
Apr 21 #PHP
You might like
PHP 程序员应该使用的10个组件
2009/10/31 PHP
CodeIgniter基本配置详细介绍
2013/11/12 PHP
php简单的留言板与回复功能具体实现
2014/02/19 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
Webpack优化配置缩小文件搜索范围
2017/12/25 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
react 应用多入口配置及实践总结
2018/10/17 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
利用python将xml文件解析成html文件的实现方法
2017/12/22 Python
python爬虫实现中英翻译词典
2019/06/25 Python
python序列类型种类详解
2020/02/26 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
CSS3 文字动画效果
2020/11/12 HTML / CSS
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
xml有哪些解析技术?区别是什么
2016/04/26 面试题
回门宴答谢词
2014/01/13 职场文书
高中军训感言1000字
2014/03/01 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书