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. java中文乱码解决之道(二)-----字符编码详解:基础知识 + ASCII + GB**

    在上篇博文(java中文乱码解决之道(一)-----认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述字符集.字符编码等基础知识和ASCII.GB的详情. 一.基 ...

  2. ReactNative与NativeScript对比报告

    综合这段时间对ReactNative(下称RN)和NativeScript(下称NS)的简单学习了解,分别从不同方面分析对比二者的优缺点. 页面结构 NS一个页面的目录结构: RN的一个页面一般就是一 ...

  3. 用JavaScript调用WCF Service

    原创地址:http://www.cnblogs.com/jfzhu/p/4039604.html 转载请注明出处 前面介绍过<Step by Step 创建一个WCF Service>和& ...

  4. How To Use Goto?

    看到,网上很多人对于goto的询问, 因为本身在工作中经常使用到,所以写下此文, 如有错误, 请指出. 本人写博文的时候主要从事C++工作 对于goto的态度,本人目前成长如下: 学生时代 老师课堂上 ...

  5. hbase 1.1.7在centor6.5安装过程

    1.自己安装的最新版一直没成功,换成了1.1.7稳定版的.中间遇到的问题记录下 1) jdk 用的1.7版本的,安装过程省略. 2)下载hbase  zip包:https://mirrors.tuna ...

  6. Spring中AOP(通知)的使用

    1.新建 Spring Bean Configuration File  xml格式的文件 2. xml文件 <bean id="my1" class="xml.M ...

  7. MongoDB 数据分发

    在MongoDB(版本 3.2.9)中,数据的分发是指将collection的数据拆分成块(chunk),分布到不同的分片(shard)上,数据分发主要有2种方式:基于数据块(chunk)数量的均衡分 ...

  8. Triangle - Delaunay Triangulator

    Triangle - Delaunay Triangulator  eryar@163.com Abstract. Triangle is a 2D quality mesh generator an ...

  9. 简单java在线测评程序

    简单java程序在线测评程序 一.前言 大家过年好!今年的第一篇博客啊!家里没有网,到处蹭无线!日子过得真纠结!因为毕设的需求,简单写了一个java程序在线测评程序,当然也可以在本地测试. 二.思路 ...

  10. 【原创】机器学习之PageRank算法应用与C#实现(2)球队排名应用与C#代码

    在上一篇文章:机器学习之PageRank算法应用与C#实现(1)算法介绍 中,对PageRank算法的原理和过程进行了详细的介绍,并通过一个很简单的例子对过程进行了讲解.从上一篇文章可以很快的了解Pa ...