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 相关文章推荐
火车头discuz6.1 完美采集的php接口文件
Sep 13 PHP
PHP在字符断点处截断文字的实现代码
Apr 21 PHP
php模拟post提交数据的方法
Feb 12 PHP
PHP从FLV文件获取视频预览图的方法
Mar 12 PHP
php自定义函数实现JS的escape的方法示例
Jul 07 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
PHP通过文件路径获取文件名的实例代码
Oct 14 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
Jun 12 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
Sep 25 PHP
phpstudy隐藏index.php的方法
Sep 21 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 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
PHP zlib扩展实现页面GZIP压缩输出
2010/06/17 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
javascript之函数直接量(function(){})()
2007/06/29 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
纯JS开发baguetteBox.js响应式画廊插件
2020/06/28 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
python读取Android permission文件
2013/11/01 Python
python多进程控制学习小结
2018/10/31 Python
python实现二维插值的三维显示
2018/12/17 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
python实现二分查找算法
2020/09/18 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
zooplus波兰:在线宠物店
2019/07/21 全球购物
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
小学生学习感言
2014/03/10 职场文书
医院护士工作检讨书
2014/10/26 职场文书
质量保证书格式
2015/02/27 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
Python基础之元编程知识总结
2021/05/23 Python
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js
win7配置本地ftp服务器的图文教程
2022/08/05 Servers