php xml 文件读取

<?php
/**
$xmlString = '<xml>
<persons count="10">
<person username="username1" age="20">this is username1 description</person>
<person username="username2" age="20">this is username2 description</person>
</persons>
</xml>'; $mXmlTest = new XmlTest();
$dataList = $mXmlTest->parseXmlStr($xmlString);
print_r($dataList); $xmlFile = './test.xml';
$dataList = $mXmlTest->parseXmlFile($xmlFile);
print_r($dataList); */ class XmlTest{ // <xml>
// <persons count="10">
// <person username="username1" age="20">this is username1 description</person>
// <person username="username2" age="20">this is username2 description</person>
// </persons>
// </xml> /**
* 解析返回的XML文档
*/
public function parseXmlFile($xmlFile){
$reader = new \XMLReader();
$reader->open($xmlFile, 'UTF-8');
$nodeName = '';
$dataList = array();
$data = array();
while ($reader->read()){
if($reader->nodeType == \XMLReader::ELEMENT){
$nodeName = $reader->name;
if($nodeName=='persons'){
$count = $reader->getAttribute('count');
if(!($count>0)){
break;
}
}
elseif($nodeName=='person'){
$data = array(
'username'=>$reader->getAttribute('username'),
'age'=>$reader->getAttribute('age'),
);
}
}
if($reader->nodeType == \XMLReader::TEXT && !empty($nodeName)){
if($nodeName=='person'){
$data['description'] = strtolower($reader->value);
$dataList[] = $data;
}
}
}
$reader->close();
return $dataList;
} /**
* 解析返回的XML文档
*/
public function parseXmlStr($xmlString){
$reader = new \XMLReader();
$reader->xml($xmlString,'UTF-8');
$nodeName = '';
$dataList = array();
$data = array();
while ($reader->read()){
if($reader->nodeType == \XMLReader::ELEMENT){
$nodeName = $reader->name;
if($nodeName=='persons'){
$count = $reader->getAttribute('count');
if(!($count>0)){
break;
}
}
elseif($nodeName=='person'){
$data = array(
'username'=>$reader->getAttribute('username'),
'age'=>$reader->getAttribute('age'),
);
}
}
if($reader->nodeType == \XMLReader::TEXT && !empty($nodeName)){
if($nodeName=='person'){
$data['description'] = strtolower($reader->value);
$dataList[] = $data;
}
}
}
return $dataList;
}
}

php xml 文件读取 XMLReader的更多相关文章

  1. javascript读取xml文件读取节点数据的例子

    分享下用javascript读取xml文件读取节点数据方法. 读取的节点数据,还有一种情况是读取节点属性数据. <head> <title></title> < ...

  2. xml文件读取到数据库

    xml文件读取到数据库   第一步,导包 c3p0,dom4j,jaxen,MySQL-connector 第二步  xml文件,config文件 第三步 javabean 第四步 c3p0的工具类 ...

  3. 【C#-读取XML文件】XMLReader读取XML文档

    使用   XmlReader.Create("文件路径")   加载xml文件 XmlReader使用流的方式来读取. //使用XMLReader读取XML数据 XmlReader ...

  4. XML文件读取工具类

    /// <summary> /// Author: jiangxiaoqiang /// </summary> public class XmlReader { //===== ...

  5. XML文件读取加上 Ajax请求

    #region XML文件处理 XmlDocument doc = new XmlDocument(); XmlReaderSettings settings = new XmlReaderSetti ...

  6. Xml 文件读取

    .NET 读取Xml文件,用到XmlDocument类. 1.要获取文档的根: DocumentElement. 2.Attributes :获取 XmlAttributeCollection 包含此 ...

  7. C# XML文件读取

    using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; usin ...

  8. 【U1结业机试题】新闻内容管理系统:解析XML文件读取Html模版生成网页文件

    一.作业要求: 1.在xml文件中创建新闻节点news,包含标题.作者.日期.正文等信息 2.创建HTML模板文件 3.读取xml中所有新闻信息,并使用新闻信息替换模板文件中占位符,从而为每一条新闻生 ...

  9. 【Selenium + Python】之 Excel、CSV、XML文件读取数据并运用数据百度查询

    目录 从Excel读取数据进行百度搜索 从CSV读取数据进行百度搜索 从XML读取数据进行登录操作 附:其他学习资料(<xml.etree.ElementTree模块>.<pytho ...

随机推荐

  1. (C#)使用NPOI导出Excel

    在做业务型的软件时,经常需要将某些数据导出,本文介绍了在Winform或Asp.net中使用NPOI(POI 项目的 .NET 版本)来操作Excel文件,而无需安装Office. 首先,需要获取NP ...

  2. Linux sudo

    200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要介绍sudo配置和用法,为了给某个用户控制权限比如执行某个命令或者关 ...

  3. MySQL数据库数据存放位置修改

    MySQL数据库数据存放位置修改 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方 ...

  4. PHP类的封装和做投票和用进度条显示

    三处理传过来的数据1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...

  5. ASP.NET列表信息以Excel形式导出

    1.从数据查出数据扔进table中: private DataTable getTable() { var dbHelper = applyBLL.CreateDataBase("VISAd ...

  6. Android-Notification-简单的demo

    通知,几乎存在于每一个 Android 的应用中,新闻客户端来一条新闻的时候会给你发一条通知,QQ.微信有新消息来的时候会给你发一条通知,反正,通知就像魔鬼般一直缠绕在我们的左右.所以,Android ...

  7. react9 生命周期

    <body><!-- React 真实 DOM 将会插入到这里 --><div id="example"></div> <!- ...

  8. ajax局部刷新后,如何让局部中的百度分享重新加载

    我这个人不怎么喜欢说太多话,看几个图你们就懂了 Ajax前 Ajax之后 原因分析 解决方法 收工 百度分享是集成了众多主流第三方网站分享和收藏按钮的工具. 通过百度分享轻松将主流第三方网站的分享按钮 ...

  9. 两张图总结 Neutron 架构 - 每天5分钟玩转 OpenStack(74)

    前面我们详细讨论了 Neutron 架构,包括 Neutron Server,Core 和 Service Agent.现在用两张图做个总结.先看第一张: 与 OpenStack 其他服务一样,Neu ...

  10. jQuery UI Datepicker使用介绍

    本博客使用Markdown编辑器编写 在企业级web开发过程中,日历控件和图表控件是使用最多的2中第三方组件.jQuery UI带的Datepicker,日历控件能满足大多数场景开发需要.本文就主要讨 ...