用PHP5的SimpleXML解析XML文档

messages.xml

========================================================
<?xml version="1.0" ?>
<!--Sample XML document -->
<SystemMessage>
    <MessageTitle>System Down for Maintenance</MessageTitle>
    <MessageBody>Going down for maintenance soon!</MessageBody>
    <MessageAuthor>
  <MessageAuthorName>Joe SystemGod</MessageAuthorName>
  <MessageAuthorEmail>systemgod@someserver.com
</MessageAuthorEmail>
    </MessageAuthor>
    <MessageDate>March 4, 2004</MessageDate>
  <MessageNumber>10</MessageNumber>
</SystemMessage>
========================================================

xml 是一种创建元数据的语言,元数据是描述其它数据的数据,PHP中的XML处理是基于LIBXML2的,安装时默认开启。

可以通过phpinfo()函数查看是否开启了XML处理模块,DOM,LIBXML,SAMPLEXML。

首先,通过samplexml_load_file函数把xml文件加载到一个对象中,samplexml_load_file可以用户远程文件。

例如:

$xml = samplexml_load_file("messages.xml"); // 本地文件系统,当前目录

$xml = samplexml_load_file("http://www.xml.org.cn/messages.xml"); // 远程web服务器

用 var_dump($xml) 和 print_r($xml) 分别输出其结构.var_dump给出了变量的类型和长度,而print_r可读性更强输出对象中的所有元素名称和它的值。

echo $xml->MessageTitle; //输出消息的标题

echo $xml->MessageBody; // 输出消息体

echo $xml->MessageAuthor; //消息的作者

echo $xml->MessageDate;  // 消息产生的日期

echo $xml->MessageNumber;  // 消息代码

===================================================

时间: 2024-08-23 04:20:23

用PHP5的SimpleXML解析XML文档的相关文章

简述PHP4和PHP5版本下解析XML文档的操作方法

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

使用PHP 5.0 轻松解析XML文档(1)

xml 用sax方式的时候,要自己构建3个函数,而且要直接用这三的函数来返回数据, 要求较强的逻辑. 在处理不同结构的xml的时候, 还要重新进行构造这三个函数,麻烦! 用dom方式,倒是好些,但是他把每个节点都看作是一个node,操作起来要写好多的代码, 麻烦! 网上有好多的开源的xml解析的类库, 以前看过几个,但是心里总是觉得不踏实,感觉总是跟在别人的屁股后面. 这几天在搞java, 挺累的,所以决定换换脑袋,写点php代码,为了防止以后xml解析过程再令我犯难,就花了一天的时间写了下面一

php DOMDocument 创建,加载,解析xml文档代码

 代码如下 复制代码 $xml_str = "<?xml version='1.0'?>"; $xml_str .= "<books>"; $xml_str .= "<book>"; $xml_str .= "<title>harry potter</title>"; $xml_str .= "<author>j.k.rowling</au

解析xml文档的一个简单php类

xml //原创,可以自由使用,欢迎提出改进意见, <?PHP//xml中的元素class XMLTag{ var $parent;//父节点 var $child;//子节点 var $attribute;//本节点属性 var $data;//本节点数据 var $TagName;//本节点名称 var $depth;//本节点的深度,根节点为1 function XMLTag($tag='') {  $this->attribute = array();  $this->child

VC++中利用MSXML解析XML文档

c++|xml 四.程序实现 下面通过一个具体的实例来说明在VC++中如何利用MSXML解析XML文档. (1)源XML文档(xmlfile.xml)如下: <?xml version="1.0" encoding="GB2312"?> <Device id="10041" name="设备1"> <Type>13</Type> <TypeName>保护</Ty

使用Digester解析XML文档示例

xml|示例 一. 概述 解析XML文档方面有不少的方法,也有不少的工具包可用,这里介绍的是来自Apache Jakarta的Digester,使用其解析XML文件非常方便而不需要过多的关心底层的具体解析过程. Digester最早出现在Struts中,后来随着Struts的发展以及其的公用性而被提到commens中独自立项,其底层实现的是SAX解析.当前版本为:1.5 二. 正文 1. 安装与配置 使用Digester需要如下几个软件包: Digester ,BeanUtils, Collec

使用PHP 5.0 轻松解析XML文档(6)

xml 下面是通过createNode()函数,添加商品, 然后显示添加后的结果 <?xml version="1.0" encoding="GB2312" ?><shop> <name>华联</name> <address>北京长安街-9999号</address> <desc>连锁超市</desc> <telphone>123456789</telp

使用PHP 5.0 轻松解析XML文档(5)

xml 下面是通过getNode()函数,返回某一个分类下的所有商品的信息商品名: food11Array( [name] => food11 [price] => 12.90)Array( [id] => food11)商品名:food12Array( [name] => food12 [price] => 22.10 [desc] => Array ( [value] => 好东西推荐 [attrs] => Array ( [creator] =>

使用PHP 5.0 轻松解析XML文档(4)

xml 下面是例子运行对结果: 下面是通过函数getSaveData()返回的整个xml数据的数组 Array( [name] => 华联 [address] => 北京长安街-9999号 [desc] => 连锁超市 [cat_food] => Array ( [attrs] => Array ( [id] => food ) [goods_food11] => Array ( [name] => food11 [price] => 12.90 [a