0

我正在使用 xpath 来获取页面上的各种元素。如果我使用这样的 foreach 循环,foreach ($company as $node) { echo $node->nodeValue. "<br>"; }它可以工作,但我只能从一个变量返回值,这意味着我必须创建两个单独的 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++;
}
4

1 回答 1

2

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

while ($i < $company->length ) {
   echo $company->item($i)->nodeValue. "<br>";
   echo $address->item($i)->nodeValue. "<br><br>";
   $i++;
}
于 2013-01-19T11:15:43.643 回答