php xml 文件读取 XMLReader
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的更多相关文章
- javascript读取xml文件读取节点数据的例子
分享下用javascript读取xml文件读取节点数据方法. 读取的节点数据,还有一种情况是读取节点属性数据. <head> <title></title> < ...
- xml文件读取到数据库
xml文件读取到数据库 第一步,导包 c3p0,dom4j,jaxen,MySQL-connector 第二步 xml文件,config文件 第三步 javabean 第四步 c3p0的工具类 ...
- 【C#-读取XML文件】XMLReader读取XML文档
使用 XmlReader.Create("文件路径") 加载xml文件 XmlReader使用流的方式来读取. //使用XMLReader读取XML数据 XmlReader ...
- XML文件读取工具类
/// <summary> /// Author: jiangxiaoqiang /// </summary> public class XmlReader { //===== ...
- XML文件读取加上 Ajax请求
#region XML文件处理 XmlDocument doc = new XmlDocument(); XmlReaderSettings settings = new XmlReaderSetti ...
- Xml 文件读取
.NET 读取Xml文件,用到XmlDocument类. 1.要获取文档的根: DocumentElement. 2.Attributes :获取 XmlAttributeCollection 包含此 ...
- C# XML文件读取
using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; usin ...
- 【U1结业机试题】新闻内容管理系统:解析XML文件读取Html模版生成网页文件
一.作业要求: 1.在xml文件中创建新闻节点news,包含标题.作者.日期.正文等信息 2.创建HTML模板文件 3.读取xml中所有新闻信息,并使用新闻信息替换模板文件中占位符,从而为每一条新闻生 ...
- 【Selenium + Python】之 Excel、CSV、XML文件读取数据并运用数据百度查询
目录 从Excel读取数据进行百度搜索 从CSV读取数据进行百度搜索 从XML读取数据进行登录操作 附:其他学习资料(<xml.etree.ElementTree模块>.<pytho ...
随机推荐
- 招聘.NET开发人员(截止于2015-06-15)
文章更新 2015-06-15 01:00AM: 感谢各位的支持,简历和解决方案接收截止.2015-06-08 08:30AM: 已经收到一些简历和解决方案,正在筛选中.职位仍然开放,欢迎发送简历及解 ...
- 使用GDB调试Go语言
用Go语言已经有一段时间了,总结一下如何用GDB来调试它! ps:网上有很多文章都有描述,但是都不是很全面,这里将那些方法汇总一下 GDB简介 GDB是GNU开源组织发布的⼀一个强⼤大的UNIX下的 ...
- 在浏览器的背后(二) —— HTML语言的语法解析
当你看到这篇文章意味着我辜负了@教主的殷切期望周末木有去约会,以及苏老师@我思故我在北京鼓楼的落井下石成功了…… 本文demo powered by 已经结婚的@老赵的不再维护的wind.js 物是人 ...
- 将nuget与VS直接集成,实现一键上传等功能
nuget是一个非常方便的包管理工具,很多团队为了开发的方便也建立了自己的包源网站(nuget.server),本篇文章是笔者在配置nuget上面的一点小体,其最终目标是要达到能够在VS里一键打包上传 ...
- J2EE项目修改编码问题
一:项目编码修改 新建项目后,右键项目-->Properties-->Resource,这时可以修改编码为UTF-8. 二:JSP页面编码修改 Window --> Preferen ...
- MongoDB 之C#实践
官方驱动:https://github.com/mongodb/mongo-csharp-driver/downloads.下载后,还提供了一个酷似msdn的帮助文档. samus驱动:https:/ ...
- android/java 根据当前时间判断股票交易状态(未开盘 交易中 休市中 已收盘)
/** * @param data yyyy-MM-dd HH:mm:ss 时间 * @return 未开盘 交易中 休市中 已收盘 */ public static String getSotckS ...
- 基于ReactCSSTransitionGroup实现react-router过渡动画
此前,我使用了react-router库来完成单页应用的路由,从而实现组件之间的切换能力.然而,默认页面的切换是非常生硬的,为了让页面切换更加缓和与舒适,通常的方案就是过渡动画. 这里我调研了2种 ...
- IOS下载查看PDF文件(有下载进度)
IOS(object-c) 下载查看 PDF 其实还是蛮容易操作的.在下载前,首先要把 IOS 可以保存文件的目录给过一遍: IOS 文件保存目录 IOS 可以自定义写入的文件目录,是很有限的,只能是 ...
- 解密jQuery事件核心 - 模拟事件(四)
前几章已经把最核心的实现都分解过了,这一章我们看看jQuery是如何实现事件模拟的 在Internet Explorer 8和更低,一些事件change 和 submit本身不冒泡,但jQuery修改 ...