2010-05-12 67 views
1

这里快速新手问题,我如何访问totalResults访问带有句号标记的XML/PHP

XML

<?xml version="1.0" encoding="UTF-8"?> 
<OpenSearchDescription xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"> 
    <opensearch:totalResults>1</opensearch:totalResults> 
    <posts> 
    <post> 
     <score>10</score> 
    </post> 
    </posts> 
</OpenSearchDescription> 

要访问score我这样做:

PHP

$xmlObj = simplexml_load_string($theXMLabove); 
echo $xmlObj->posts->post[0]->score; 

但是,这些工作为totalResults

echo $xmlObj->opensearch:totalResults; 
echo $xmlObj->opensearch->totalResults; 

对不起,问这样一个跛脚的问题...

如何与遍历XML PHP文件也可以理解:)

谢谢!

+0

的'opensearch'命名空间不说,文档中定义。 – 2010-05-12 16:19:47

+0

糟糕,我已经添加了命名空间 – 2010-05-12 16:21:36

回答

1

与添加了命名空间,你可以这样做:

$opensearch = $xmlObj->children('http://a9.com/-/spec/opensearch/1.1/'); 
echo $opensearch->totalResult; 
+0

工作很好,谢谢:) – 2010-05-12 16:26:22

0

尝试:$xmlObj->children('opensearch');

林不知道,因为从你贴什么定义为xmlnsopensearch命名空间的心不是如果,将工作虽然。这可能没有什么区别,但我不确定,因为当iN必须在simplexml中处理ns时,ns一直被明确定义。

+0

由于命名空间并未在第一位指定,因此这不是一个格式良好的XML文档。但是,一旦命名空间被定义,thetaiko提供的解决方案就是最合适的。 – EAMann 2010-05-12 16:47:50