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. IIS部署Remoting总结

    1.在IIS里新建一个网站,命名为test,路径指向 e:\test: 2.在 e:\test下创建目录bin: 3.把Remoting远程对象的Project设置为类库,编译为DLL文件,然后复制到 ...

  2. Objective-C 工厂模式(下) -- 抽象工厂模式

    相比简单工厂模式, 只有一个工厂 能生产的手机也是固定的 抽象工厂模式类似于有很多家工厂, 当用户要买什么手机就创建对应的工厂去生产 比如用户要买iPhone就创建一个Apple工厂来生产手机, 要买 ...

  3. iOS 离屏渲染的研究

    GPU渲染机制: CPU 计算好显示内容提交到 GPU,GPU 渲染完成后将渲染结果放入帧缓冲区,随后视频控制器会按照 VSync 信号逐行读取帧缓冲区的数据,经过可能的数模转换传递给显示器显示. G ...

  4. SQL语句来查询今天、昨天、7天内、30天的数据,经典!

    ---恢复内容开始--- 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * f ...

  5. 应用程序框架实战三十七:Util最新代码更新说明

    离上一篇又过去了一个月,时间比较紧,后续估计会更紧,所以这次将放出更多公共操作类及配套的CodeSmith模板,本篇将简要介绍新放出的重要功能,供有兴趣的同学参考. 重要更新 这一次对两个VS解决方案 ...

  6. EasyUI DataGrid 修改每页显示数量的最大值&&导出Grid到Excel

    首先,最近在搞那个DataGrid的导出,发现,网上的用JS导出到本地的方法虽然可用,但是只能导出DataGrid当前的数据,例如说,DataGrid默认是最大显示50行,但是如果有多页,那么就无法显 ...

  7. 【记录】JS toUpperCase toLowerCase 大写字母/小写字母转换

    小写:toLowerCase() 大写:toUpperCase() 示例代码: <script type="text/javascript" language="j ...

  8. 使用纯前端JavaScript 实现Excel IO

    公司最近要为某国企做一个**统计和管理系统, 具体要求包含 Excel导入导出 根据导入的数据进行展示报表 图表展示(包括柱状图,折线图,饼图),而且还要求要有动画效果,扁平化风格 Excel导出,并 ...

  9. 你所不知道的15个Axure使用技巧

    你有用原型开发工具吗?如果有,那你用的是Axure还是别的? 从以前就喜欢使用Axure,主要是觉得它能清楚的表达设计的思路,还有交互的真实再现,能让看的人一目了然,昨天看了这篇博文,便更加确定Axu ...

  10. 探秘Tomcat——连接器和容器的优雅启动

    前言: 上篇<探秘Tomcat——启动篇>粗线条的介绍了在tomcat在启动过程中如何初始化Bootstrap类,加载并执行server,从而启动整个tomcat服务,一直到我们看到控制台 ...