2016-10-04 13 views
1

php-html-parserパッケージ(ベースsimplehtmldom)を使用して、Composer経由で読み込んでHTML文字列を解析していますが、$ dom-> find()私が探しているすべての要素は、最初の要素(29個のうち)しか検出していません。

require __DIR__ . "/vendor/autoload.php"; 
$dom = new PHPHtmlParser\Dom; 
$dom->load($result); // $result is the output of a cURL request 
$classes = $dom->find('li[class=SPECIALCLASS]'); 
echo count($classes); 
foreach($classes as $class){ 
    echo $class->text; 
} 

出力:1

サンプルHTML:

<li class="SPECIALCLASS "></li> 
<li class="SPECIALCLASS SOMEOTHERCLASS "></li> 

EDIT:クラスセレクタ完全に返される5月29日のliタグになり、私は何か大きなものがあると感じているの削除ここで遊ぶ。

+0

:foreachの($、DOM>( 'のli [クラス= SPECIALCLASS見つける

$dom->find('li[contains(@class, "SPECIALCLASS")]'); 

の代わりに] ')as $ element){} – HZS

+0

php-html-parserをインストールし、サンプル入力でスクリプトをテストしたところ、期待どおりに2が返されました。だから多分問題は、サンプルHTMLです。 –

答えて

0

このような何か試してください:あなたがしようとした場合どうなりますか

$dom->find('li[class=SPECIALCLASS]'); 
+0

これはかなり助けになっているようですが、今は7つの結果が出ています(29のうち)、結果を見るためにループしてみると、find() - > textまたはfind() - > innerHTML突然突然動いていません –

+0

コードを投稿すると、何が問題になるか見ることができます。 @laiello – MehdiRahimi

関連する問題