这篇文章主要介绍了PHP基于XMLWriter操作xml的方法,结合实例形式分析了php使用XMLWriter生成及解析xml数据的操作技巧,需要的朋友可以参考下

接着昨天的这次再来学习一种读写xml的方式,这种方式主要围绕XMLWriter和XMLReader进行。前者用于生成xml,后者则是用来读取并解析xml.废话不多说一起来看看吧

1. 生成xml文件或字符串

header("Content-type: text/html; charset=utf-8");

$xml=new XMLWriter();

//$xml->openUri("php://output");

//设置输出,如果不需要保存成文件则使用上面被注释掉那句

$xml->openUri("stu2.xml");

//设置缩进字符串,这里设置为空串(这句和下面的setIntent也可以不要)

$xml->setIndentString('');

$xml->setIndent(true);

//xml文档开始

$xml->startDocument('1.0', 'utf-8');

//创建根节点

$xml->startElement("StudentInfo");

$xml->startElement("Item");

//添加属性

$xml->writeAttribute("type","1");

$xml->startElement("id");

$xml->text("01");

$xml->endElement();

$xml->startElement("name");

$xml->text("刘惜君");

$xml->endElement();

$xml->endElement();

$xml->endElement();

$xml->endDocument();

//header("Content-type: text/xml");

//取得缓冲区里的xml字符串

//echo $xml->outputMemory();

?>

这种方式的特点是每个标签结束后需要一个endElement,xml拼接好后需要把文档结束掉。有一种“层层包裹”的感觉

2. 解析xml

header("Content-type: text/html; charset=utf-8");

$xml=new XMLReader();

//载入xml文件,如果是字符串直接使用xml方法

$xml->open("student.xml");

//开始读取xml

while($xml->read()){

//根据节点类型和元素名称取得文本节点或属性

if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'item') {

print $xml->getAttribute("id") . "";

}

if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'name') {

//移动指针到下一个节点

$xml->read();

//取得文本节点的值

print $xml->value."";

}

if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'age') {

$xml->read();

print $xml->value."";

}

}

?>

这种解析xml的方式比较高效,如果有的地方看不懂建议查阅下PHP开发手册

被解析的文件内容如下

冯绍峰30潘玮柏29

下面是解析出来的结果

相关推荐:

php下xmlwriter,PHP实现基于XMLWriter操作xml的方法相关推荐

  1. Windows下安装Redis及使用Python操作Redis的方法

    这篇文章主要介绍了Windows下安装Redis及使用Python操作Redis的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 首先说一下在Windows下安装Redis,安装包可以在htt ...

  2. php 赋值给 dom对象,详解PHP原生DOM对象操作XML的方法

    详解PHP原生DOM对象操作XML的方法 发布于 2017-08-08 20:15:29 | 80 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...

  3. QTP操作xml文件方法

    搜索1: 目前,企业中对XML的应用越来越广泛,作为自动化测试的测试工程师,也应该掌握XML的读写操作. 以下我使用XML DOM技术演示一个例子,用以读取XML指定节点的节点内容值. 读取函数原型 ...

  4. T-SQL操作XML 数据类型方法 modify 的参数 1 必须是字符串文字。

    ----删除关键字的同时也清理AP表中所有关联这个ID的数据 create trigger Trg_UpdateAppWordOnDelKeyWord on [dbo].[tbl_KeyWord] f ...

  5. ASP.net Xml: ASP.net操作Xml

    专题图编号:ylbtechASPnetXml100010010 XML课件PPT[在线PPT课件倡导者-ylb]  http://wenku.baidu.com/view/bfac3ebe1a37f1 ...

  6. java中document解析jsp,JSP基于dom解析xml实例详解

    本文实例讲述了JSP基于dom解析xml的方法.分享给大家供大家参考,具体如下: 初次学习用dom操作xml文件,有很多不足之处,牛人多给点建议,练习时我没对中文做乱码处理,也没做验证哦!O(∩_∩) ...

  7. 基于CentOS7操作cobbler批量装机-(centos7和redhat8)

    基于CentOS7操作cobbler批量装机-centos7和redhat8 1. cobbler简介 2. cobbler服务端部署 3. 客户端安装 4. 定制安装 5.命令方式和定制安装Cent ...

  8. 深入理解:scp,rsync,sftp,xsync等命令的基本使用方法,以及cmd命令窗口下进行相关的ssh命令操作

    深入理解:scp,rsync,sftp,xsync等命令的基本使用方法,以及cmd命令窗口下进行相关的ssh命令操作 一·scp命令使用方法:参考链接 二·rsync命令使用方法:参考链接 三·xsy ...

  9. python 获取excel文本框_如何基于python操作excel并获取内容

    这篇文章主要介绍了如何基于python操作excel并获取内容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景:从excel表中获取请求url. ...

最新文章

  1. 13种编程语言名称的来历
  2. 微软AI要参加IMO竞赛!小目标:数学金牌
  3. C#中对于float,double,decimal的误解
  4. 开源Math.NET基础数学类库使用(04)C#解析Matrix Marke数据格式
  5. VC嵌入python时debug版lib下载
  6. datagrid 溢出文本显示省略号
  7. C语言中可变参函数介绍与示例
  8. [转]Java集合类: Set、List、Map、Queue使用场景梳理
  9. dubbo与springcloud对比与面试
  10. 廖雪峰Python教程练习题
  11. 华为数通HCIA笔记(OSI七层)
  12. 搜狐全体员工遭遇工资补助诈骗,冲上微博热搜第一
  13. 微信小程序登陆流程踩坑
  14. mysql事物幻读_MySQL事务的幻读
  15. 计算机连接网络被限制,本地连接受限制或无连接怎么办很简单解决教程
  16. 在linux下成功写Bingo游戏
  17. python自然语言处理 | 分析句子结构
  18. 随心所遇,随遇而安。
  19. Ubuntu 找不到wifi适配器
  20. IP67 | IP58 防护等级理解

热门文章

  1. Scikit_Learn介绍及演练
  2. 2015计算机类专业课类试卷,2015年自考《计算机应用基础》模拟试题及答案
  3. php border-style,border-style
  4. python函数定义时参数相当于占位符_python中函数的参数
  5. wscript.exe无法打开vbs_如何恶搞朋友的电脑?超简单的vbs代码
  6. android 补签控件,墨墨背单词怎么补签 看完你就懂了
  7. 把网站图片和php程序分离,我的图片服务器和WEB应用服务器相分离的简单方案
  8. android 上划卡住tab_Android SlidingTabLayout用法禁止ViewPager滑动
  9. 通过命令行获取计算机参数,Win32命令行参数的传到和获取
  10. php而且,PHP – David's Blog