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 相关文章推荐
初学者入门:细述PHP4的核心Zend
Sep 05 PHP
一个分页的论坛
Oct 09 PHP
PHP新手上路(四)
Oct 09 PHP
php下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
查找mysql字段中固定字符串并替换的几个方法
Sep 23 PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
Dec 15 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
Feb 25 PHP
浅谈Laravel核心解读之Console内核
Dec 02 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 PHP
php实现文件上传基本验证
Mar 04 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
php下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
一个简单的PHP验证码实现代码
2014/05/10 PHP
19个Android常用工具类汇总
2014/12/30 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
Javascript下IE与Firefox下的差异兼容写法总结
2010/06/18 Javascript
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
angular4中关于表单的校验示例
2017/10/16 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
vue弹窗消息组件的使用方法
2020/09/24 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
用Python的urllib库提交WEB表单
2009/02/24 Python
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
python 求10个数的平均数实例
2019/12/16 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
Python高阶函数、常用内置函数用法实例分析
2019/12/26 Python
Python如何使用PIL Image制作GIF图片
2020/05/16 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
中医临床专业自我鉴定范文
2014/01/15 职场文书
报社实习生自荐信
2014/01/24 职场文书
培训专员岗位职责
2014/02/26 职场文书
关于读书的演讲稿500字
2014/08/27 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
python 机器学习的标准化、归一化、正则化、离散化和白化
2021/04/16 Python
你需要掌握的20个Python常用技巧
2022/02/28 Python