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 多维数组排序实现代码
Aug 05 PHP
基于HTTP长连接的&quot;服务器推&quot;技术的php 简易聊天室
Oct 31 PHP
MySQL连接数超过限制的解决方法
Jul 17 PHP
浅谈PHP强制类型转换,慎用!
Jun 06 PHP
深入PHP autoload机制的详解
Jun 09 PHP
PHP多线程之内部多线程实例分析
Mar 09 PHP
盘点PHP和ASP.NET的10大对比!
Dec 24 PHP
php获取当前月与上个月月初及月末时间戳的方法
Dec 05 PHP
thinkPHP中_initialize方法实例分析
Dec 05 PHP
PHP7多线程搭建教程
Apr 21 PHP
PHP封装的分页类与简单用法示例
Feb 25 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仿盗链代码
2012/06/03 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
2017/04/19 PHP
javascript延时重复执行函数 lLoopRun.js
2007/06/29 Javascript
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
理解Javascript的动态语言特性
2015/06/17 Javascript
JavaScript实现点击按钮就复制当前网址
2015/12/14 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
2016/11/01 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
基于JS设计12306登录页面
2016/12/28 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
Vue实现购物车场景下的应用
2017/11/27 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
浅谈开发eslint规则
2018/10/01 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
详解Python字典小结
2018/10/20 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
selenium切换标签页解决get超时问题的完整代码
2020/08/30 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
函授毕业自我鉴定
2013/12/19 职场文书
怎样写演讲稿
2014/01/04 职场文书
大学秋游活动方案
2014/02/11 职场文书
安全生产标语
2014/06/06 职场文书
装修活动策划方案
2014/08/27 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
Nginx实现负载均衡的项目实践
2022/03/18 Servers