公司要用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。如果你追求完美,请参考以下文档: