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写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
PHP 分页原理分析,大家可以看看
Dec 21 PHP
PHP中去掉字符串首尾空格的方法
May 19 PHP
如何在PHP中使用正则表达式进行查找替换
Jun 13 PHP
PHP mysql与mysqli事务使用说明 分享
Aug 17 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
PHP QRCODE生成彩色二维码的方法
May 19 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
Jul 18 PHP
PHP Mysqli 常用代码集合
Nov 12 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP设计模式之组合模式定义与应用示例
Feb 01 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
一个简单实现多条件查询的例子
2006/10/09 PHP
php curl的深入解析
2013/06/02 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
php 伪静态之IIS篇
2014/06/02 PHP
ThinkPHP提交表单时默认自动转义的解决方法
2014/11/25 PHP
PHP读取PPT文件的方法
2015/12/10 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
php扩展开发入门demo示例
2019/09/23 PHP
基于jQuery架构javascript基础体系
2011/01/01 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
python3实现随机数
2018/06/25 Python
解决Pycharm运行时找不到文件的问题
2018/10/29 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
绘画设计学生的个人自我评价
2013/09/20 职场文书
计算机应用与科学个人的自我评价
2013/11/15 职场文书
初中音乐教学反思
2014/01/12 职场文书
迎国庆演讲稿
2014/09/15 职场文书
2014年村官工作总结
2014/11/24 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS
Oracle用户管理及赋权
2022/04/24 Oracle