0

このコード スニペットが、現在のように最初のクラスだけでなく、解析しているページのすべてのdivwith クラスの値を返すようにするにはどうすればよいですか?age

$nodelist = $xpath->query('//div[@class="age"]')->item(0);
print_r($nodelist->nodeValue);

div必要なすべての画像を返す同様のコードがありますが、必要な一致する値を返すように変更できないようです:

$nodelist = $xpath->query( "//div[@class='thumb-wrapper']" );

foreach ($nodelist as $node) 
{
    $tags = $node->getElementsByTagName('img');
    $image =  $tags->item(0)->getAttribute('src');
    echo '<img src="'. $image .'" alt="image" ><br>';
}
4

2 に答える 2

0

「*」を使用する必要があります

アスタリスク ( ) を使用すると、前のパス内にあるすべての要素が選択されます。したがって、td タグ (p、div など) 内にあるすべての要素に一致させたい場合は、次のように記述します: //td/

于 2013-08-07T04:45:59.713 に答える
0

このコードの問題は、XPath が返された後に行うことではありません。

$nodelist = $xpath->query('//div[@class="age"]')->item(0);
print_r($nodelist->nodeValue);

これはすべての をdiv取得し、最初の項目を使用して取得し、その最初の->item(0)項目を変数に割り当てます$nodelist

既存のコードを例として使用すると、 を削除して変更し->item(0)、すべての結果を割り当てて$nodelist、2 番目の「動作する」例のように反復できます。

$nodelist = $xpath->query('//div[@class="age"]');
foreach ($nodelist as $node) 
{
    // Do something with each div
}
于 2013-08-07T05:10:31.220 に答える