这篇文章主要介绍了php读取XML的常见方法,结合实例形式总结了php基于DOMDocument、simplexml、正则及xmlreader读取xml文件的相关操作技巧,需要的朋友可以参考下

本文实例讲述了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++;     }   }?>

更多相关文章

  1. 关于html嵌入xml数据岛如何穿过树形结构关系
  2. 使用Spry轻松将XML数据显示到HTML页
  3. 使用 JWT、Redis、MySQL 存储 OAuth2.0 数据~
  4. Linux学习:unix的标准化的实现(Linux中各种限制-数据类型-各种标准
  5. Vue.js任务列表 可本地存储任务数据
  6. 疫情防控不能松懈,利用数据挖掘做好重点区域人群密度预测
  7. 芋道 Spring Boot 数据库版本管理入门
  8. Spring Boot项目利用MyBatis Generator进行数据层代码自动生成
  9. python六大数据类型

随机推荐

  1. Android(安卓)唯一识别码
  2. MVVM在Android中的初学之路
  3. Windows环境下Android(安卓)Studio v1.0
  4. android在文本中添加超链接
  5. android aidl通讯详解
  6. 浅谈Android(安卓)ANR在线监控原理
  7. Android 入门教程:Android Studio 介绍
  8. Android 常用布局说明
  9. Android Edittext 显示光标 获取焦点 监
  10. android xml控件属性