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 date与gmdate的获取日期的区别
Feb 08 PHP
PHP中几个常用的魔术常量
Feb 23 PHP
PHP超级全局变量数组小结
Oct 04 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
Dec 06 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
smarty表格换行实例
Dec 15 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
PHP SplObjectStorage使用实例
May 12 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
Jun 08 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
May 29 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
php cookie使用方法学习笔记分享
2013/11/07 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
jquery 设置元素相对于另一个元素的top值(实例代码)
2013/11/06 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
Python中无限元素列表的实现方法
2014/08/18 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
python3 读取Excel表格中的数据
2018/10/16 Python
详解用python生成随机数的几种方法
2019/08/04 Python
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
Sunglasses Shop瑞典:欧洲领先的太阳镜网上商店
2018/04/22 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
物流管理毕业生自荐信
2013/10/24 职场文书
司机职责范本
2014/03/08 职场文书
售后服务承诺书怎么写
2014/05/21 职场文书
小学生环保标语
2014/06/13 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs