1

您好我有一个简单的 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>

显示结果我使用以下

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

我想要做的是将总页数、当前页数和总结果的结果放入变量中,我遇到的问题是,当我尝试如下编写它们时,它没有返回结果。

 echo $results['totalPages'];

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

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

任何意见,将不胜感激。

谢谢

4

1 回答 1

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;
于 2012-11-08T15:49:52.987 回答