2016-11-18 11 views
1

私はPHP DOMパーサーを初めて使用しています。任意のdivやすべてのリンクなどの単純なデータを取得できますが、私の仕事では特定の名前のクラスのデータを抽出する必要があります。私の場合、私はこのリンクからすべてのデータを抽出する必要があります。http://www.dawn.com/archive/2014-12-03/ idが与えられておらず、クラス名で抽出が必要な場合、どのようにそのようなdivのデータを抽出するか教えてください。私はこの恩恵に非常に感謝しています。PHPのDOMパーサを使ってループ内の特定のクラスのデータを取得する方法は?

がここで働いているすべての私のコードです:

foreach($html->find("div#story__excerpt") as $element) 
echo $element; 

をこれ1は出力を与えていません。

<?php 
    include("simple_html_dom.php"); 
    $html=file_get_html("http://www.dawn.com/archive/2014-12-03/"); 

    //to show all links/refrences 
    foreach($html->find('a') as $element) 
     echo $element->href . '<br>'; 
    ?> 

が、私はクラスのデータを表示したい、私はこれをしようとしています。

+0

に対する基準であるあなたは、現在、余分な単純なデータに使用するいくつかのコードを表示することができますか?おそらくそれはこの大きな問題を解決するために変更/拡張することができます。 –

+0

はい、できます。ここには、 – maadi

+0

<?php \t include( "simple_html_dom.dom.php"); \t $ html = file_get_html( "http://www.dawn.com/archive/2014-12-03/"); \t \t \t //すべてのリンクを表示 \t foreach($ html-> find( 'a')を$ elementとして) echo $ element-> href。 '
'; ?> – maadi

答えて

0

あなたが引き出そうとしているURLのHTMLソースを見ると、クラス名がまさしくあなたの考えではないことがわかります。ここではソースでどのように見えるのですか:

<div class='story__excerpt  '> 

このクラスのスペースに注意してください。おそらく、ワイルドカードや正規表現ベースの検索がサポートされていれば、それを試してみてください。

0

クラスごとに要素を取得するには、.#の要素をidで参照する必要があります。ここで

foreach($html->find("div.story__excerpt") as $element) { 
    echo $element; 
} 

はすべてCSS Selectors

関連する問題