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. [.net 面向对象程序设计深入](6).NET MVC 6 —— 模型、视图、控制器、路由等的基本操作

    [.net 面向对象程序设计深入](6).NET MVC 6 —— 模型.视图.控制器.路由等的基本操作 1. 使用Visual Studio 2015创建Web App (1)文件>新建> ...

  2. New Career

    Today I received the official confirmation letter with very good grade for the probation, it means t ...

  3. CSharpGL(6)在OpenGL中绘制UI元素

    CSharpGL(6)在OpenGL中绘制UI元素 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合入 ...

  4. Windows Azure Storage (18) 使用HTML5 Portal的Azure CDN服务

    <Windows Azure Platform 系列文章目录> Update:2015-04-15 如果读者使用的是国内由世纪互联运维的Azure China服务,请参考笔者的文档:Azu ...

  5. 如何创建一个AJAX-Enabled WCF Service

      原创地址:http://www.cnblogs.com/jfzhu/p/4041638.html 转载请注明出处   前面的文章中介绍过<Step by Step 创建一个WCF Servi ...

  6. SQL Server 2012 Managed Service Account

    原创地址:http://www.cnblogs.com/jfzhu/p/4007472.html 转载请注明出处 (一)Windows服务使用的登陆帐号 Windows服务只有登录到某一帐户的情况下才 ...

  7. [视频],花一分钟来看看Worktile是如何为团队协作而生的

    团队协作,我们想的更深.更远.更多,花一分钟来看看我们特别奉献的故事,然后去注册一个账号,邀请小伙伴一起来工作,你会体会Worktile才是真正懂你的协作方式. 我们想做的百年公司还有很多的路,这一站 ...

  8. angularjs揭秘

    angularjs揭秘

  9. GUID简介

    GUID (全局唯一标识符) 编辑 全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符.GUID主要用于在拥有多个节点. ...

  10. OpenCASCADE Conic to BSpline Curves-Hyperbola

    OpenCASCADE Conic to BSpline Curves-Hyperbola eryar@163.com Abstract. Rational Bezier Curve can repr ...