3

PHP Domdocument を使用して html をロードしています。私の HTML には、class="smalllist" が 2 回あります。しかし、ファーストクラスの要素をロードする必要があります。

さて、私のPHPコードは

    $d = new DOMDocument();
    $d->validateOnParse = true;
    @$d->loadHTML($html);
    $xpath = new DOMXPath($d);
    $table = $xpath->query('//ul[@class="smalllist"]');
    foreach ($table as $row) {
       echo $row->getElementsByTagName('a')->item(0)->nodeValue."-";
       echo $row->getElementsByTagName('a')->item(1)->nodeValue."\n";

    }

両方のクラスをロードします。ただし、その名前のクラスを 1 つだけロードする必要があります。これで私を助けてください。前もって感謝します。

4

4 に答える 4

0

breakループ内に a を配置foreachして、最初のクラスからのみ読み取ることができます。または、あなたができるforeach ($table->item(0) as $row) {...

コード:

$count = 0;
foreach($table->item(0)->getElementsByTagName('a') as $anchor){
   echo $anchor->nodeValue . "\n";
   if( ++$count > 2 ) {
      break;
   }
}
于 2013-10-08T11:46:14.063 に答える
0

break を使用する代わりの別の方法 (猫の皮を剥ぐ方法は複数あります):

$anchors = $table->item(0)->getElementsByTagName('a');
for($i = 0; $i < 2; $i++){
  echo $anchor->item($i)->nodeValue . "\n";
}
于 2013-10-08T12:31:20.867 に答える