使用句点中的句点访问XML / PHP

时间:2010-05-12 16:10:25

标签: php xml traversal

此处快速新手提问,如何访问totalResults

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;

很抱歉问这么蹩脚的问题......

有关如何使用PHP遍历XML的文档也很受欢迎:)

谢谢!

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

我不确定这是否会起作用,因为从您发布的opensearch命名空间未定义为xmlns。虽然这可能没什么区别 - 我不确定,因为当我必须在simplexml中处理ns时,ns一直是明确定义的。