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代码
Sep 10 PHP
php中转义mysql语句的实现代码
Jun 24 PHP
PHP批量采集下载美女图片的实现代码
Jun 03 PHP
php5.3 goto函数介绍和示例
Mar 21 PHP
PHP+MYSQL会员系统的开发实例教程
Aug 23 PHP
PHP中mysql_field_type()函数用法
Nov 24 PHP
php将图片保存入mysql数据库失败的解决方法
Dec 27 PHP
php遍历目录方法小结
Mar 10 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
May 12 PHP
浅析PHP7新功能及语法变化总结
Jun 17 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 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将时间差转换为字符串提示
2011/09/07 PHP
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
prototype Element学习笔记(Element篇三)
2008/10/26 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
js substring从右边获取指定长度字符串(示例代码)
2013/12/23 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码
2016/06/02 Javascript
Webpack打包慢问题的完美解决方法
2017/03/16 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
浅谈js中的bind
2019/03/18 Javascript
javascript刷新父页面方法汇总详解
2019/10/10 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
python文件操作相关知识点总结整理
2016/02/22 Python
python利用微信公众号实现报警功能
2018/06/10 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
python数据抓取3种方法总结
2021/02/07 Python
《草虫的村落》教学反思
2014/02/16 职场文书
运动会闭幕式解说词
2014/02/21 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
导师推荐信范文
2014/05/09 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书