首页 > 开发 > PHP > 正文

PHP4和PHP5版本下解析XML文档的操作方法实例分析

2024-05-04 22:47:31
字体:
来源:转载
供稿:网友

本文实例讲述了PHP4和PHP5版本下解析XML文档的操作方法。分享给大家供大家参考,具体如下:

在PHP网站开发与建设过程中,时常会碰到需要对XML文档进行解析,PHP4版本自带了XML解析器(sax),PHP5版本增加了SimpleXML(基于dom)的XML扩展,对XML的解析更是非常方便,今天和大家分享下在不同环境下对XML文档进行解析的方法。

XML文档

<?xml version="1.0" encoding="gbk"?><LeapsoulXML><LeapsoulInfo><name>Leapsoul-PHP网站开发</name><website>//www.jb51.net</website><description>分享PHP网站开发与建设的乐趣,教你如何建立网站</description><bloger>David</bloger><date>2009-05-13</date><qq>QQ:154130270</qq></LeapsoulInfo><LeapsoulInfo><name>Leapsoul-PHP网站开发</name><website>//www.jb51.net</website><description>分享PHP网站开发与建设的乐趣,教你如何建立网站</description><bloger>David</bloger><date>2009-05-13</date><qq>QQ:154130270</qq></LeapsoulInfo></LeapsoulXML>

PHP5版本下SimpleXML的使用方法

$info=simplexml_load_file('leapsoulcn.xml');print_r($info);$name=$info->LeapsoulInfo[0]->name;echo$name;foreach($info->LeapsoulInfoas$LeapsoulInfo){echo$LeapsoulInfo->name."<br />";echo$LeapsoulInfo->website."<br />";echo$LeapsoulInfo->description."<br />";echo$LeapsoulInfo->bloger."<br />";echo$LeapsoulInfo->date."<br />";echo$LeapsoulInfo->qq."<br />";}foreach($info->xpath('//name')as$value){echo$value.'<br />';}foreach($info->LeapsoulInfo[0]->children()as$value){echo$value->getName();echo$value.'<br />';}$info->LeapsoulInfo[0]->addChild('msn','MSN:davidfaithman@hotmail.com');$info->asXML('leapsoulcn.xml');

代码注释

第1行:simplexml_load_file:读取一个xml文档作为操作对象,可以读取本地或者远程xml文档;simplexml_load_string:读取一个xml字符串作为操作的对象
第3行:如果不清楚如何获取某个节点的信息,可用print_r函数打印输出查看具体的结构,simplexml解析返回的对象具有数组结构。
第5~8行:以对象方式读取某个XML文档节点信息,读取方式:句柄->节点元素名->子节点,如果相同的节点元素有多个,则以数组(array)方式读取

注:由于simplexml解析返回的信息是UTF8格式的,如果网站使用的是GBK的,则需要转码,你可以使用iconv函数或者其他的utf8与gbk转换函数进行操作,如:$name = iconv('utf-8′,'gbk',$name);

第9~17行:以遍历的形式,读取所有元素下的子节点信息
第19~21行:simplexml的xpath函数是用来查询XML数据的,比如这里查询的是所有name节点的值

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表