PHP使用XMLWriter读写xml文件操作详解


Posted in PHP onJuly 31, 2018

本文实例讲述了PHP使用XMLWriter读写xml文件操作。分享给大家供大家参考,具体如下:

米扑科技旗下的多个产品,需要脚本自动生成sitemap.xml,于是重新温习一遍PHP XML读写操作。

读写xml的方式,主要围绕XMLWriterXMLReader进行,前者用于生成xml,后者则是用来读取并解析xml

写入 xml

test_xml_write.php

<?php
/**
 * mimvp.com
 * 2017.06.22
 */
header("Content-type: text/html; charset=utf-8");
$xml = new XMLWriter();
$xml->openUri("php://output");  // 输出到网页控制台
$xml->openUri("mimvp.xml");   // 输出到文件,需要读写权限,推荐 chmod 766 mimvp.xml
// 设置缩进字符串
$xml->setIndentString("\t");
$xml->setIndent(true);
// xml文档开始
$xml->startDocument('1.0', 'utf-8');
// 创建根节点
$xml->startElement("MimvpInfo");
  // 节点1
  $xml->startElement("Item");
    $xml->writeAttribute("info","1");  // 属性
      $xml->startElement("id");
      $xml->text("01");
      $xml->endElement();
      $xml->startElement("name");
      $xml->text("米扑代理");
      $xml->endElement();
  $xml->endElement();
  // 节点2
  $xml->startElement("Item");
    $xml->writeAttribute("info","1");  // 属性
      $xml->startElement("id");
      $xml->text("02");
      $xml->endElement();
      $xml->startElement("name");
      $xml->text("米扑财富");
      $xml->endElement();
  $xml->endElement();
$xml->endElement();
$xml->endDocument();
//header("Content-type: text/xml");
//取得缓冲区里的xml字符串
//echo $xml->outputMemory();
?>

输出mimvp.xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<MimvpInfo>
  <Item info="1">
    <id>01</id>
    <name>米扑代理</name>
  </Item>
  <Item info="1">
    <id>02</id>
    <name>米扑财富</name>
  </Item>
</MimvpInfo>

注意:

1. 新建mimvp.xml 文件:

touch mimvp.xml

2. 授权mimvp.xml 文件:

chmod 766 mimvp.xml

读取 xml

test_xml_read.php

<?php
/**
 * mimvp.com
 * 2017.06.22
 */
header ( "Content-type: text/html; charset=utf-8" );
$xml = new XMLReader ();
// 载入xml文件,如果是字符串直接使用xml方法
$xml->open ( "mimvp.xml" );
// 开始读取xml
while ( $xml->read () ) {
  // 根据节点类型和元素名称取得文本节点或属性
  if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'item') {
    print $xml->getAttribute ( "info" ) . "</br>";
  }
  if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'id') {
    $xml->read ();  // 移动指针到下一个节点
    print $xml->value . "\t";
  }
  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>";
  }
}
?>

输出结果:

01 米扑代理
02 米扑财富

源代码及应用

请见米扑科技的Github: https://github.com/mimvp/sitemap-php

还可点击此处本站下载

PHP 相关文章推荐
一个好用的分页函数
Nov 16 PHP
php面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
php新建文件自动编号的思路与实现
Jun 27 PHP
PHP数据类型之整数类型、浮点数的介绍
Apr 28 PHP
PHP循环函数使用介绍之PHP基础入门教程
Sep 21 PHP
php下拉选项的批量操作的实现代码
Oct 14 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
Aug 23 PHP
php实现utf-8转unicode函数分享
Jan 06 PHP
带你了解PHP7 性能翻倍的关键
Nov 19 PHP
php上传图片类及用法示例
May 11 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
php微信支付之公众号支付功能
May 30 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
Jul 31 #PHP
PHP常用日期加减计算方法实例小结
Jul 31 #PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
Jul 30 #PHP
PHP笛卡尔积实现算法示例
Jul 30 #PHP
作为PHP程序员你要知道的另外一种日志
Jul 30 #PHP
详解Laravel5.6 Passport实现Api接口认证
Jul 27 #PHP
PHP实现的DES加密解密类定义与用法示例
Nov 02 #PHP
You might like
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
php表单提交与$_POST实例分析
2015/01/26 PHP
php文件上传的两种实现方法
2016/04/04 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
PHP redis实现超迷你全文检索
2017/03/04 PHP
php微信开发之图片回复功能
2018/06/14 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
[原创]图片分页查看
2006/08/28 Javascript
犀利的js 函数集合
2009/06/11 Javascript
javascript window对象属性整理
2009/10/24 Javascript
js如何获取兄弟、父类等节点
2014/01/06 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
2016/05/19 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
2014/01/23 Python
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
Python 实现集合Set的示例
2020/12/21 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
请问软件开发中的设计模式你会使用哪些
2015/05/13 面试题
自我鉴定怎么写
2013/12/05 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
XX部保密工作制度范本
2019/08/27 职场文书
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS