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 相关文章推荐
用Socket发送电子邮件
Oct 09 PHP
php实现的MySQL通用查询程序
Mar 11 PHP
人尽可用的Windows技巧小贴士之下篇
Mar 22 PHP
php下用GD生成生成缩略图的两个选择和区别
Apr 17 PHP
PHP 文件扩展名 获取函数
Jun 03 PHP
浅析PHP中strlen和mb_strlen的区别
Aug 31 PHP
php实现两表合并成新表并且有序排列的方法
Dec 05 PHP
PHP比较运算符的详细介绍
Sep 29 PHP
Laravel使用支付宝进行支付的示例代码
Aug 16 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
Oct 07 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 PHP
php适配器模式简单应用示例
Oct 23 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
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
简单的php 验证图片生成函数
2009/05/21 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
PHP mkdir()无写权限的问题解决方法
2014/06/19 PHP
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
js 效率组装字符串 StringBuffer
2009/12/23 Javascript
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
[01:45]DOTA2众星出演!DSPL刀塔次级职业联赛宣传片
2014/11/21 DOTA
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
详解Python中的分支和循环结构
2020/02/11 Python
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
来自南加州灵感的工作和娱乐服装:TravisMathew
2019/05/01 全球购物
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
专升本个人自我评价
2013/12/22 职场文书
农行心得体会
2014/09/02 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
销售会议开幕词
2016/03/04 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python