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 表单提交给自己
Jul 24 PHP
用Zend Encode编写开发PHP程序
Feb 21 PHP
php函数之子字符串替换&amp;#65279; str_replace
Mar 23 PHP
discuz程序的PHP加密函数原理分析
Aug 05 PHP
PHP句法规则详解 入门学习
Nov 09 PHP
php获取通过http协议post提交过来xml数据及解析xml
Dec 16 PHP
php制作中间带自己定义图片二维码的方法
Jan 27 PHP
PHP延迟静态绑定示例分享
Jun 22 PHP
PHP使用Mysql事务实例解析
Sep 08 PHP
PHP date函数常用时间处理方法
May 11 PHP
PHP单例模式详解及实例代码
Dec 21 PHP
Memcached介绍及php-memcache扩展安装
Apr 01 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 前一天或后一天的日期
2008/06/28 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
PHP防止刷新重复提交页面的示例代码
2015/11/11 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
2017/09/11 jQuery
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
微信小程序云开发之使用云存储
2019/05/17 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
Python中List.count()方法的使用教程
2015/05/20 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
用python批量下载apk
2020/12/29 Python
CSS3制作轮播图的一种方法
2019/11/11 HTML / CSS
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
美国在线印刷公司:PsPrint
2017/10/12 全球购物
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
公司新员工的演讲稿注意事项
2014/01/01 职场文书
学习党的群众路线剖析材料
2014/10/09 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技