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 に答える