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 相关文章推荐
一个php作的文本留言本的例子(五)
Oct 09 PHP
php中DOMElement操作xml文档实例演示
Mar 26 PHP
一个PHP针对数字的加密解密类
Mar 20 PHP
ThinkPHP视图查询详解
Jun 30 PHP
PHP+Javascript实现在线拍照功能实例
Jul 18 PHP
利用PHP将部分内容用星号替换
Apr 21 PHP
PHP面向对象程序设计实例分析
Jan 26 PHP
解决出现SoapFault (looks like we got no XML document)的问题
Jun 24 PHP
Yii2.0 RESTful API 基础配置教程详解
Dec 26 PHP
PHP判断函数是否被定义的方法
Jun 21 PHP
php的优点总结 php有哪些优点
Jul 19 PHP
laravel框架如何设置公共头和公共尾
Oct 22 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
Laravel 5 学习笔记
2015/03/06 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
php array_reverse 以相反的顺序返回数组实例代码
2017/04/11 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
JS location几个方法小姐
2008/07/09 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
AngularJS学习第二篇 AngularJS依赖注入
2017/02/13 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
python 限制函数调用次数的实例讲解
2018/04/21 Python
python实现Windows电脑定时关机
2018/06/20 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
python安装scipy的步骤解析
2019/09/28 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
Python json格式化打印实现过程解析
2020/07/21 Python
python实现网页录音效果
2020/10/26 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
车间统计员岗位职责
2014/01/05 职场文书
给校长的建议书100字
2014/05/16 职场文书
公证委托书格式
2014/09/13 职场文书
督导岗位职责
2015/02/04 职场文书
家长会开场白和结束语
2015/05/29 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
高端收音机+蓝牙音箱,JBL TUNER FM带收音蓝牙音箱评测
2021/04/24 无线电