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字符过滤函数去除字符串最后一个逗号(rtrim)
Mar 26 PHP
PHP URL路由类实例
Nov 12 PHP
yii操作session实例简介
Jul 31 PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 PHP
php递归创建目录的方法
Feb 02 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
抛弃 PHP 代价太高
Apr 26 PHP
PHP MySql增删改查的简单实例
Jun 21 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
Nov 15 PHP
PHP析构函数destruct与垃圾回收机制的讲解
Mar 22 PHP
PHP下载文件函数与用法示例
Sep 27 PHP
解决Laravel5.5下的toArray问题
Oct 15 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
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
PHP 数字左侧自动补0
2008/03/31 PHP
php模块memcache和memcached区别分析
2011/06/14 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
2011/07/04 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
php发送与接收流文件的方法
2015/02/11 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
javascript实现动态统计图开发实例
2015/11/21 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
[01:03:03]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
python base64 decode incorrect padding错误解决方法
2015/01/08 Python
Python实现股市信息下载的方法
2015/06/15 Python
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
python实现远程通过网络邮件控制计算机重启或关机
2018/02/22 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
英国香水店:The Perfume Shop
2017/03/27 全球购物
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
暑期实习鉴定
2013/12/16 职场文书
小学教师师德整改措施
2014/09/29 职场文书
收款授权委托书
2014/10/02 职场文书
语文教师求职信范文
2015/03/20 职场文书
公司备用金管理制度
2015/08/04 职场文书
消防演习感想
2015/08/10 职场文书
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python