• 技术文章 >后端开发 >PHP问题

    php解析xml的几种方式

    (*-*)浩(*-*)浩2019-09-12 15:36:43原创67
    php提供几种解析xml的类或方法,包括:Xml parser、 SimpleXML,、XMLReader,、DOMDocument。

    XML Expat Parser:

    XML Parser使用Expat XML解析器。Expat是一种基于事件的解析器,它把XML文档视为一系列事件。当某个事件发生时,它调用一个指定的函数处理它。Expat是无验证的解析器,忽略任何链接到文档的DTD。(推荐学习:PHP编程从入门到精通

    但是,如果文档的形式不好,则会以一个错误消息结束。由于它基于事件,且无验证,Expat具有快速并适合web应用程序的特性。

    XML Parser的优势是性能好,因为它不是将整个xml文档载入内存后再处理,而是边解析边处理。但也正因为如此,它不适合那些要对xml结构做动态调整、或基于xml上下文结构做复杂操作的需求。

    如果你只是要解析处理一个结构良好的xml文档,那么它可以很好的完成任务。需要注意的是XML Parser只支持三种编码格式:US-ASCII, ISO-8859-1和UTF-8,如果你的xml数据是其他编码,需要先转换成以上三个之一。

    XML Parser常用的解析方式大体有两种(其实就是两个函数):xml_parse_into_struct和xml_set_element_handler。

    xml_parse_into_struct

    此方法是将xml数据解析到两个数组中:

    index数组——包含指向Value 数组中值的位置的指针

    value数组——包含来自被解析的 XML 的数据

    SimpleXML

    SimpleXML是PHP5后提供的一套简单易用的xml工具集,可以把xml转换成方便处理的对象,也可以组织生成xml数据。不过它不适用于包含namespace的xml,而且要保证xml格式完整(well-formed)。

    它提供了三个方法:simplexml_import_dom、simplexml_load_file、simplexml_load_string,函数名很直观地说明了函数的作用。三个函数都返回SimpleXMLElement对象,数据的读取/添加都是通过SimpleXMLElement操作。

    SimpleXML的优点是开发简单,缺点是它会将整个xml载入内存后再进行处理,所以在解析超多内容的xml文档时可能会力不从心。如果是读取小文件,而且xml中也不包含namespace,那SimpleXML是很好的选择。

    XMLReader

    XMLReader也是PHP5之后的扩展(5.1后默认安装),它就像游标一样在文档流中移动,并在每个节点处停下来,操作起来很灵活。它提供了对输入的快速和非缓存的流式访问,可以读取流或文档,使用户从中提取数据,并跳过对应用程序没有意义的记录。

    使用DomDocument解析XML文件

    操作步骤:

    1,创建节点使用createElement方法,

    2,创建文本内容使用createTextNode方法,

    3,添加子节点使用appendChild方法,

    4,创建属性使用createAttribute方法

    以上就是php解析xml的几种方式的详细内容,更多请关注php中文网其它相关文章!

    phpstudy集成环境下载
    本文原创发布php中文网,转载请注明出处,感谢您的尊重!
    专题推荐:php
    上一篇:php跨平台是什么意思 下一篇:php静态方法有什么用

    相关文章推荐

    • yum安装php后怎么验证安装好了?• windows10如何快速搭建php• win10如何安装thinkphp• tomcat支持php吗

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网