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
人大复印资料处理程序_输入篇
Oct 09 PHP
php中的实现trim函数代码
Mar 19 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 PHP
php构造函数实例讲解
Nov 13 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
May 12 PHP
php 在线导入mysql大数据程序
Jun 11 PHP
PHP环境中Memcache的安装和使用
Nov 05 PHP
php类的自动加载操作实例详解
Sep 28 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
Ajax+PHP实现的删除数据功能示例
Feb 12 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
人族 Terran 基本策略
2020/03/14 星际争霸
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
php调用shell的方法
2014/11/05 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
JScript的条件编译
2007/05/29 Javascript
javascript实现的距离现在多长时间后的一个格式化的日期
2009/10/29 Javascript
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
jquery中radio checked问题
2015/03/16 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
vue ssr 实现方式(学习笔记)
2019/01/18 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
Python实现合并两个列表的方法分析
2018/05/28 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
使用CSS3的appearance属性改变任何元素的浏览器默认风格
2012/12/24 HTML / CSS
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
学前教育毕业生自荐信范文
2013/12/24 职场文书
建筑施工安全责任书
2014/07/24 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB