从XML Feed获取总页数

时间:2012-11-08 15:32:29

标签: php xml

您好我有一个简单的XML Feed,它以下面显示的格式返回数据

  <Computers>
  <results totalPages="18" currentPage="18" totalResults="88"/>
  <computer id="1" name="IBM">
  <computertype id="1" name="Windows"/>
  </computer>
  <computer id="94" name="Acer">
  <computertype id="1" name="windows"/>
  </computer>
  <computer id="1533" name="selfbuild">
  <computertype id="1" name="windows"/>
  </computer>
  </computers>

显示结果我使用以下

foreach($xml->computer as $computer){
 echo $computer['name'];

我想要做的是将总页数,当前页面和总结果的结果输入到变量中,我遇到的问题是,当我尝试按如下方式编写它们时,它不会返回结果。

 echo $results['totalPages'];

我认为这是因为foreach是在结果部分之后开始的,但是如果我尝试将它们写成如下所示,那么我什么也得不到。

   foreach($xml->results as $results){
  echo $results['totalPages'];

任何建议都将受到赞赏。

由于

1 个答案:

答案 0 :(得分:0)

您正在尝试访问节点的属性。

使用SimpleXML这样做:

$xml = <<<XML
  <Computers>
  <results totalPages="18" currentPage="18" totalResults="88"/>
  <computer id="1" name="IBM">
  <computertype id="1" name="Windows"/>
  </computer>
  <computer id="94" name="Acer">
  <computertype id="1" name="windows"/>
  </computer>
  <computer id="1533" name="selfbuild">
  <computertype id="1" name="windows"/>
  </computer>
  </Computers>
XML;

$xml = simplexml_load_string($xml);

foreach($xml->results->attributes() as $a => $b) {
    echo $a,'="',$b,"\"<br>";
}

其中输出以下内容:

  

totalPages =“18”
currentPage =“18”
totalResults =“88”

或直接访问每个属性:

echo $xml->results->attributes()->totalPages;