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通用分页类page.php[仿google分页]
Aug 31 PHP
php 常用类整理
Dec 23 PHP
php学习之变量的使用
May 29 PHP
php实现文件下载更能介绍
Nov 23 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
Aug 20 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
PHP实现全角字符转为半角方法汇总
Jul 09 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
Sep 10 PHP
PHP读取mssql json数据中文乱码的解决办法
Apr 11 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
Thinkphp5.0 框架Model模型简单用法分析
Oct 11 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 进程锁定问题分析研究
2009/11/24 PHP
php 静态变量与自定义常量的使用方法
2010/01/26 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
2019/03/12 PHP
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
JavaScript数组去重算法实例小结
2018/05/07 Javascript
js实现点击展开隐藏效果(实例代码)
2018/09/28 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
Pandas 同元素多列去重的实例
2018/07/03 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
戴尔新西兰官网:Dell New Zealand
2020/01/07 全球购物
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
大学毕业生的自我鉴定
2013/11/30 职场文书
《钱学森》听课反思
2014/03/01 职场文书
央视元宵晚会主持串词
2014/03/25 职场文书
禁毒宣传标语
2014/06/19 职场文书
学校实习推荐信
2015/03/27 职场文书
事业单位财务人员岗位职责
2015/04/14 职场文书