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 相关文章推荐
仿AS3实现PHP 事件机制实现代码
Jan 27 PHP
关于PHP递归算法和应用方法介绍
Apr 15 PHP
php求两个目录的相对路径示例(php获取相对路径)
Mar 27 PHP
ThinkPHP模板替换与系统常量及应用实例教程
Aug 22 PHP
php去除字符串中空字符的常用方法小结
Mar 17 PHP
php实现过滤字符串中的中文和数字实例
Jul 29 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
Yii实现显示静态页的方法
Apr 25 PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 PHP
PHP微信分享开发详解
Jan 14 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
Mar 28 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 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
手冲咖啡应该是现代精品咖啡店的必备选项吗?
2021/03/03 冲泡冲煮
PHP环境搭建最新方法
2006/09/05 PHP
用PHP实现维护文件代码
2007/06/14 PHP
坏狼php学习 计数器实例代码
2008/06/15 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
js 与 php 通过json数据进行通讯示例
2014/03/26 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
如何在vue中使用ts的示例代码
2018/02/28 Javascript
javascript中UMD规范的代码推演
2018/08/29 Javascript
小程序指纹验证的实现代码
2018/12/04 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
2019/08/29 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
python从PDF中提取数据的示例
2020/10/30 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
什么是.net
2015/08/03 面试题
服装设计行业个人的自我评价
2013/12/20 职场文书
美容院营销方案
2014/03/05 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
欢迎词怎么写
2015/01/23 职场文书
工作会议简报
2015/07/20 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python