PHP基于XMLWriter操作xml的方法分析


Posted in PHP onJuly 17, 2017

本文实例讲述了PHP基于XMLWriter操作xml的方法。分享给大家供大家参考,具体如下:

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

1. 生成xml文件或字符串

<?php
 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

<?php
 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") . "</br>";
   }
  if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'name') {
     //移动指针到下一个节点
     $xml->read();
     //取得文本节点的值
     print $xml->value."</br>";
  }
  if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'age') {
     $xml->read();
     print $xml->value."</br>";
  }
 }
?>

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

被解析的文件内容如下

<?xml version="1.0" encoding="utf-8"?>
<UsersInfo><item id="01"><name>冯绍峰</name><age>30</age></item><item id="02"><name>潘玮柏</name><age>29</age></item></UsersInfo>

下面是解析出来的结果

PHP基于XMLWriter操作xml的方法分析

PHP 相关文章推荐
wiki-shan写的php在线加密的解密程序
Sep 07 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
Sep 05 PHP
解决cPanel无法安装php5.2.17
Jun 22 PHP
PHP多进程编程实例
Oct 15 PHP
PHP CURL 内存泄露问题解决方法
Feb 12 PHP
用php来限制每个ip每天浏览页面数量的实现思路
Feb 24 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
php实现遍历多维数组的方法
Nov 25 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
Jan 05 PHP
JavaScript实现删除电脑的关机键
Jul 26 PHP
PHP 常用时间函数资料整理
Oct 22 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
Nov 07 PHP
PHP基于DOMDocument解析和生成xml的方法分析
Jul 17 #PHP
PHP基于SimpleXML生成和解析xml的方法示例
Jul 17 #PHP
PHP实现限制IP访问及提交次数的方法详解
Jul 17 #PHP
PHP提取字符串中的手机号正则表达式怎么写
Jul 17 #PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 #PHP
PHPstorm快捷键(分享)
Jul 17 #PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
Jul 16 #PHP
You might like
php异常处理技术,顶级异常处理器
2012/06/13 PHP
PHP中的生成XML文件的4种方法分享
2012/10/06 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
php面向对象中static静态属性和静态方法的调用
2015/02/08 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
用js实现的检测浏览器和系统的函数
2009/04/09 Javascript
jQuery帮助之筛选查找 children([expr])
2011/01/31 Javascript
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
2011/07/26 Javascript
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
javascript html5实现表单验证
2016/03/01 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
微信小程序 支付功能实现PHP实例详解
2017/05/12 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
2020/06/01 Javascript
用TensorFlow实现戴明回归算法的示例
2018/05/02 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
2020/03/19 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
django教程如何自学
2020/07/31 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
社区食品安全实施方案
2014/03/28 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
感谢信的技巧及范例
2019/05/15 职场文书