快速业务通道

用PHP5的SimpleXML解析XML文档

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

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;  // 消息代码

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

另外,还有一个函数,可以把XML字符串加载到一个simplexml对象中取。

$channel =<<<_XML_
<channel>
<title>What''s For Dinner</title>
<link>http://menu.example.com/</link>
<description>These are your choices of what to eat tonight. </description>
</channel>
_XML_;
  $xml = simplexml_load_string($channel);
===================================================

rss.xml

=============================================
<?xml version="1.0" encoding="utf-8"?>
<rss version="0.91">
<channel>
 <title>What''s For Dinner</title>
 <link>http://menu.example.com/</link>
 <description>These are your choices of what to eat tonight.</description>
 <item>
 <title>Braised Sea Cucumber</title>
 <link>http://menu.example.com/dishes.php?dish=cuke</link>
 <description>Gentle flavors of the sea that nourish and refresh you. </description>
 </item>
 <item>
 <title>Baked Giblets with Salt</title>
 <link>http://menu.example.com/dishes.php?dish=giblets</link>
 <description>Rich giblet flavor infused with salt and spice. </description>
 </item>
 <item>
 <title>Abalone with Marrow and Duck Feet</title>
 <link>http://menu.example.com/dishes.php?dish=abalone

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号