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出错界面
Oct 09 PHP
php escape URL编码
Dec 10 PHP
php实现首页链接查询 友情链接检查的代码
Jan 05 PHP
php入门学习知识点六 PHP文件的读写操作代码
Jul 14 PHP
PHP采用XML-RPC构造Web Service实例教程
Jul 16 PHP
PHP面向对象程序设计实例分析
Jan 26 PHP
php实现基于openssl的加密解密方法
Sep 30 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 PHP
php如何计算两坐标点之间的距离
Dec 29 PHP
laravel添加前台跳转成功页面示例
Oct 22 PHP
PHP的new static和new self的区别与使用
Nov 27 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 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/04 冲泡冲煮
php事务处理实例详解
2014/07/11 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
一段批量给页面上的控件赋值js
2010/06/19 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
Js调用Java方法并互相传参的简单实例
2016/08/11 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
layer.open关闭父窗口 以及调用父页面的方法
2018/08/17 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
在JavaScript中使用严格模式(Strict Mode)
2019/06/13 Javascript
详解package.json版本号规则
2019/08/01 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
python 内置函数汇总详解
2019/09/16 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
校园活动策划书范文
2014/01/10 职场文书
浅谈spring boot使用thymeleaf版本的问题
2021/08/04 Java/Android
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android