1SimpleXML简介要处理XML文件,有两种传统的处理思路:SAX和DOM。SAX基于事件触发机制,对XML文件进行一次扫描,完成要进行的处理;DOM则将整个XML文件构造为一棵DOM树,通过对DOM树的遍历完成处理。这两种方法各有优缺点,SAX的处理思路相对抽象,DOM的处理过程相对烦琐,都不很适合新手的入门。 PHP5推出了一套新的XML处理函数,即SimpleXML。名如其实,SimpleXML本身小巧精干,只提供了少量的几个方法函数,但用它处理起XML文件功能却非常强大,操作也非常的简单。 首先,它提供有简单的函数可以从XML文档、字符串、或DOM对象上直接构造出SimpleXMLElement对象;其次,SimpleXMLElement提供有简单的方法可以进行属性、子节点、和XPath的操作;然而,SimpleXML最简单的地方是,它提供有使用标准对象的属性和对象迭代器进行节点操作的方法,这一处理思路使得用PHP对XML文档的处理得到了极大的简化。 2SimpleXML入门示例下面我们通过一些小的代码片段,稍微了解一下SimpleXML的强大和简洁。为举例方便,我们使用一个Messages.xml文件,里面包含这样一段XML代码: <?xml version='1.0' standalone='yes'?> 这是一篇保存有留言信息的XML文档,每条信息包括属性id,子节点title、content、time以及若干条对于它的回复信息,每条回复包括属性id及回复的内容。 用SimpleXML处理并输出此XML文档内容的过程以及方法如下。 (1)构造SimpleXMLElement对象 $xml= simplexml_load_file('Messages.xml');@H_718_301@ 如果这段xml已经被读入到一个字符串$messages中,则可以使用如下语句: $xml = simplexml_load_string('Messages.xml');@H_718_301@ //可以使用属性的方式访问子节点,通过节点的标签名可直接得到节点的内容 //同级别的多个同名节点自动成为数组,可以通过索引下标访问其内容 (4)输出留言的i //节点的属性与值被封装成为关联数组的键与值 //成为二维数组,第一维表示节点,第二维表示属性 //使用foreach对同名节点进行遍历 (7)使用XPath检索所有的回复信息 //xpath方法直接检索定位(//表示任意深度) (8)遍历留言1所有的子节点 //children方法得到所有子节点 (9)重新设置留言1的发布时间 //直接设置属性 //设置管理数组的值 (11)新增一个描述消息作者的字段 //直接设置属性 (12)将消息的作者保存为属性 //设置关联数组的key (13)重新保存对象到文件 //保存 应该可以看出SimpleXML有多简单了吧! |