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 相关文章推荐
IIS+PHP+MySQL+Zend配置 (视频教程)
Dec 13 PHP
一贴学会PHP 新手入门教程
Aug 03 PHP
php getimagesize 上传图片的长度和宽度检测代码
May 15 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
Nov 18 PHP
php准确计算复活节日期的方法
Apr 18 PHP
php判断访问IP的方法
Jun 19 PHP
Joomla开启SEF的方法
May 04 PHP
php使用变量动态创建类的对象用法示例
Feb 06 PHP
highchart数据源纵轴json内的值必须是int(详解)
Feb 20 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
Mar 15 PHP
PHP实现的解汉诺塔问题算法示例
Aug 06 PHP
php实现微信企业付款到个人零钱功能
Oct 09 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去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
使用PHP实现Mysql读写分离
2013/06/28 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
javascript Object与Function使用
2010/01/11 Javascript
JavaScript 学习技巧
2010/02/17 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
Jquery ui css framework
2010/06/28 Javascript
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
js实现最短的XML格式化工具实例
2015/03/12 Javascript
jQuery实现仿Google首页拖动效果的方法
2015/05/04 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
详解Vue爬坑之vuex初识
2017/06/14 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
Vue官网todoMVC示例代码
2018/01/29 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
python 制作网站小说下载器
2021/02/20 Python
心得体会怎么写
2013/12/30 职场文书
初中三好学生事迹材料
2014/01/13 职场文书
大学学风建设方案
2014/05/04 职场文书
三好生演讲稿
2014/09/12 职场文书
普通党员个人整改措施
2014/10/27 职场文书
休学证明范本
2015/06/19 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
python blinker 信号库
2022/05/04 Python
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS