返回节点使用while循环的值

时间:2013-01-19 10:57:13

标签: php

我正在使用xpath来获取页面上的各种元素。如果我使用类似这个foreach ($company as $node) { echo $node->nodeValue. "<br>"; }的foreach循环,它可以工作,但我只能从一个变量返回值,这意味着我必须创建两个单独的foreach循环。我希望能够使用while循环,这样我就可以同时从变量返回两个值。 while循环不会返回任何错误或值。

$doc = new DOMDocument();
@$doc->loadHTML($source);
$xpath = new DOMXpath($doc);

$company = $xpath->query("//*[@class='name']");
$address = $xpath->query("//*[@class='address']");

$i = 0;

while ($i < count($company)) {
   echo $company->nodeValue. "<br>";
   echo $address->nodeValue. "<br><br>";
   $i++;
}

1 个答案:

答案 0 :(得分:2)

它们是NodeLists,要按索引检索单个节点,请使用->item()

while ($i < $company->length ) {
   echo $company->item($i)->nodeValue. "<br>";
   echo $address->item($i)->nodeValue. "<br><br>";
   $i++;
}