标签归档:simplexml

用SimpleXML函数解析AWIS(Alexa Web Information Service)数据

公司要用Alexa Web Information Service(简称AWIS)做一个网站查询系统。

AWIS的工作原理是:用户发送一个URL请求,该请求包含账号ID与密码(是的,这个API是收费的,每千次查询0.15美元) 、需要查询的网址和查询信息的种类等。Alexa的服务器接收请求后,返回一个XML文件,该文件即包含了结果信息。

本打算用PHP的SimpleXML函数来解析这个XML,但SimplyXML不支持Alexa自定义的Name Space(aws:),于是想到个办法,把这个自定义的Name Space删除掉。结果一切就正常了。

示例代码如下:

$filecontent = file_get_contents( $awis_url ); //从alexa获取数据
$filecontent = str_replace(‘aws:’,”,$filecontent); //剔除aws:
$xml = simplexml_load_string( $filecontent );

这只是一种简单、懒惰的解决方法。它不够强健, 无法应对多种多样的自定义namespace。如果你追求完美,请参考以下文档:

http://devzone.zend.com/node/view/id/688#Heading3