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

 更新时间:2017年07月17日 12:10:40   作者:青蛙小王子  
这篇文章主要介绍了PHP基于XMLWriter操作xml的方法,结合实例形式分析了php使用XMLWriter生成及解析xml数据的操作技巧,需要的朋友可以参考下

脚本之家 / 编程助手:解决程序员“几乎”所有问题!
脚本之家官方知识库 → 点击立即使用

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

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

1. 生成xml文件或字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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开发手册

被解析的文件内容如下

1
2
<?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.jb51.net/code/xmljson

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

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

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

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

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

蓄力AI

微信公众号搜索 “ 脚本之家 ” ,选择关注

程序猿的那些事、送书等活动等着你

相关文章

  • 如何在php中正确的使用json

    如何在php中正确的使用json

    以下是对在php中正确使用json的方法进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • phpMyAdmin通过密码漏洞留后门文件

    phpMyAdmin通过密码漏洞留后门文件

    今天小编就为大家分享一篇关于phpMyAdmin通过密码漏洞留后门文件,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-11-11
  • Windows下安装Memcached的步骤说明

    Windows下安装Memcached的步骤说明

    Windows 下安装 Memcached 的方法,需要的朋友可以参考下。
    2010-04-04
  • 对PHP依赖注入的理解实例分析

    对PHP依赖注入的理解实例分析

    这篇文章主要介绍了对PHP依赖注入的理解,结合实例形式详细分析了PHP依赖注入的相关概念与原理,需要的朋友可以参考下
    2016-10-10
  • php魔法函数与魔法常量使用介绍

    php魔法函数与魔法常量使用介绍

    这篇文章主要介绍了php魔法函数与魔法常量的相关知识介绍,需要的朋友可以参考下
    2017-07-07
  • php中动态变量用法实例

    php中动态变量用法实例

    这篇文章主要介绍了php中动态变量用法,实例分析了php中动态变量的相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • php引用计数器进行垃圾收集机制介绍

    php引用计数器进行垃圾收集机制介绍

    每一种计算机语言都有自己的自动垃圾回收机制,让程序员不必过分关心程序内存分配,php也不例外,但是在面向对象编程(OOP)编程中,有些对象需要显式的销毁;防止程序执行内存溢出
    2012-09-09
  • php通过function_exists检测函数是否存在的方法

    php通过function_exists检测函数是否存在的方法

    这篇文章主要介绍了php通过function_exists检测函数是否存在的方法,实例分析了php使用function_exists检测函数是否存在及调用的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • PHP文件操作实例总结

    PHP文件操作实例总结

    这篇文章主要介绍了PHP文件操作,结合实例形式总结分析了php关于文件读写操作的常见函数及使用技巧,需要的朋友可以参考下
    2016-09-09
  • PHP使用pdo连接access数据库并循环显示数据操作示例

    PHP使用pdo连接access数据库并循环显示数据操作示例

    这篇文章主要介绍了PHP使用pdo连接access数据库并循环显示数据操作,结合实例形式较为详细的分析了php使用pdo进行access数据库连接、查询、执行sql语句、预处理等相关操作技巧与注意事项,需要的朋友可以参考下
    2018-06-06

最新评论