PHP基于XMLWriter操作xml的方法分析

发布时间 - 2026-01-11 02:22:50    点击率:

本文实例讲述了PHP基于XMLWriter操作xml的方法。分享给大家供大家参考,具体如下:

接着昨天的这次再来学习一种读写xml的方式,这种方式主要围绕XMLWriter和XMLReader进行。前者用于生成xml,后者则是用来读取并解析xml.废话不多说一起来看看吧

1. 生成xml文件或字符串

<?php
 header("Content-type: text/html; charset=utf-8");
 $xml=new XMLWriter();
 //$xml->openUri("php://output");
 //设置输出,如果不需要保存成文件则使用上面被注释掉那句
 $xml->openUri("stu2.xml");
 //设置缩进字符串,这里设置为空串(这句和下面的setIntent也可以不要)
 $xml->setIndentString('');
 $xml->setIndent(true);
 //xml文档开始
 $xml->startDocument('1.0', 'utf-8');
 //创建根节点
 $xml->startElement("StudentInfo");
 $xml->startElement("Item");
 //添加属性
 $xml->writeAttribute("type","1");
 $xml->startElement("id");
 $xml->text("01");
 $xml->endElement();
 $xml->startElement("name");
 $xml->text("刘惜君");
 $xml->endElement();
 $xml->endElement();
 $xml->endElement();
 $xml->endDocument();
 //header("Content-type: text/xml");
 //取得缓冲区里的xml字符串
 //echo $xml->outputMemory();
?>

这种方式的特点是每个标签结束后需要一个endElement,xml拼接好后需要把文档结束掉。有一种“层层包裹”的感觉

2. 解析xml

<?php
 header("Content-type: text/html; charset=utf-8");
 $xml=new XMLReader();
//载入xml文件,如果是字符串直接使用xml方法
 $xml->open("student.xml");
//开始读取xml
 while($xml->read()){
   //根据节点类型和元素名称取得文本节点或属性
  if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'item') {
     print $xml->getAttribute("id") . "</br>";
   }
  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>";
  }
 }
?>

这种解析xml的方式比较高效,如果有的地方看不懂建议查阅下PHP开发手册

被解析的文件内容如下

<?xml version="1.0" encoding="utf-8"?>
<UsersInfo><item id="01"><name>冯绍峰</name><age>30</age></item><item id="02"><name>潘玮柏</name><age>29</age></item></UsersInfo>

下面是解析出来的结果

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线XML/JSON互相转换工具:
http://tools./code/xmljson

在线格式化XML/在线压缩XML
http://tools./code/xmlformat

XML在线压缩/格式化工具:
http://tools./code/xml_format_compress

XML代码在线格式化美化工具:
http://tools./code/xmlcodeformat

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP针对XML文件操作技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。


# PHP  # XMLWriter  # 操作  # xml  # php XMLWriter类的简单示例代码(RSS输出)  # PHP XML操作的各种方法解析(比较详细)  # PHP处理数组和XML之间的互相转换  # PHP中的生成XML文件的4种方法分享  # php生成xml简单实例代码  # PHP XML操作类DOMDocument  # 用PHP编写和读取XML的几种方式  # php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)  # php实现xml与json之间的相互转换功能实例  # php的SimpleXML方法读写XML接口文件实例解析  # PHP使用XMLWriter读写xml文件操作详解  # 操作技巧  # 程序设计  # 文档  # 相关内容  # 不需要  # 则是  # 有一种  # 感兴趣  # 给大家  # 再来  # 多说  # 看看吧  # 更多关于  # 这句  # 看不懂  # 所述  # 那句  # 几款  # 好后  # 面向对象 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 无锡营销型网站制作公司,无锡网选车牌流程?  如何彻底删除建站之星生成的Banner?  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  如何做网站制作流程,*游戏网站怎么搭建?  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  如何快速搭建高效WAP手机网站?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  如何用美橙互联一键搭建多站合一网站?  javascript日期怎么处理_如何格式化输出  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  焦点电影公司作品,电影焦点结局是什么?  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  详解jQuery中基本的动画方法  微信小程序制作网站有哪些,微信小程序需要做网站吗?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  制作公司内部网站有哪些,内网如何建网站?  如何快速搭建个人网站并优化SEO?  java获取注册ip实例  高防服务器如何保障网站安全无虞?  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  如何在 React 中条件性地遍历数组并渲染元素  Laravel如何处理异常和错误?(Handler示例)  怎样使用JSON进行数据交换_它有什么限制  Laravel如何实现用户密码重置功能?(完整流程代码)  如何挑选最适合建站的高性能VPS主机?  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  香港网站服务器数量如何影响SEO优化效果?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  如何用y主机助手快速搭建网站?  如何快速上传自定义模板至建站之星?  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  Laravel如何实现多对多模型关联?(Eloquent教程)  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  js实现点击每个li节点,都弹出其文本值及修改  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  Laravel怎么为数据库表字段添加索引以优化查询  简历没回改:利用AI润色让你的文字更专业  JavaScript如何实现继承_有哪些常用方法  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  详解Android——蓝牙技术 带你实现终端间数据传输  如何快速生成可下载的建站源码工具?  高性价比服务器租赁——企业级配置与24小时运维服务  Laravel如何处理和验证JSON类型的数据库字段  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  大学网站设计制作软件有哪些,如何将网站制作成自己app?