SAX方式,simpleXML方式解析XML以及DOM方式和SAX方式的异同

Php 通过SAX解析XML: 遇到一个标签就解析这个标签 遇到一个数据就解析一个数据 解析完成之后处理数据

 SAX -------  不在内存中生成节点树 ,

创建解析器

规定如何去处理碰到的标签和数据

开始解析

解析完成之后如何处理(错误信息 )

需要用到的函数:

Xml_parser_create() -- 参数是编码

Xml_set_element_handler()   --- 遇到标签  参数创建的解析器名称 参数遇到开始标签的处理函数 参数遇到结束标签的处理函数

Xml_set_character_data_handler()  --遇到数据 参数解析器名称 参数处理数据函数

Xml_parse() 参数解析器 参数要处理的XML的内容 参数标签或者数据时候已经处理完成 如果不写解析器会一直等待

Xml_get_error_code()   ----错误代码

xml_error_string()    --------错误信息

获取属性值 通过数组下标的形式 数组下标要大写

XML文件中有英文和汉字时 需要CDATA来做特殊的处理

 语法:<![CDATA[    ]]>

DOM方式和SAX方式的异同:

DOM  XML文件在内存中解析成节点树  XML文件很大的话 会占用很大的内存空间

SAX  不需要在内存中生成节点树 遇到标签就开始解析 解析速度比DOM

如果XML结构有问题,DOM方式无法解析 因为在内存中无法生成节点树

SAX则会一直解析,直到解析到错误处停止

DOM一般用于解析复杂的XML文件

SAX用于解析数据量特别大的XML文件

simpleXML解析XML:  php提供的一种简单的操作XML文件对象

实例化对象 simpleXML   ------ simpleXMLElement 会将XML的元素转换成对象 相同的元素名会转化成对象集合 -- foreach访问

  访问某一个节点:

访问元素的属性,通过数组下标形式

找到具体的某一个对象的集合 通过foreach便利

找具体某一个元素,通过数组的索引访问

节点的增删改:

增加: addChild(节点名,值)    保存  --   asXML();

删除:unset();

修改:重新赋值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值