2017-08-31 7 views
0

DOM getElementsByTagNameを使用してhtmlタグを上から下へループする方法を知っています。PHP DOMDocumentを使用して、以下の画像タグを検索します。

おそらく見つかったまたは行番号に基づいて実際にどこから開始するかをループに伝えることは可能ですか?

例:

  • 私は、ファイル内のコメント<!-- Start Here -->

  • コメント

+0

php [simple html dom parser](http://simplehtmldom.sourceforge.net/manual.htm)を使用することができます。私は例を作成するのが面倒です。ごめんなさい –

+0

パフォーマンスを改善する目的はありますか?またはこのコメントの前に結果を無視したいですか? – halfer

+0

これまでに試したコードはありますか? –

答えて

2

以下のimgタグによるファイルのコメント

  • ループを探す必要がありXPathクエリc ouldはあなたが求めていることをします。

    $domDoc->load('/path/to/your/html'); 
    
    $xpath = new DOMXPath($domDoc); 
    $qry = "//comment()[. = ' Start Here ']/following::img"; 
    
    $results = $xpath->query($qry); 
    

    $results今コメントの後に発生したすべてのimgタグの反復可能なリストが含まれています。このような具体的なコメントをした後、あなたはすべてのimgタグを選択することができます。あなたはあなたのイメージを処理することができます。上記のループでは、$imgは、あなたがこれらの機能を使用して、それを操作することができるようにDOMNodeオブジェクトがあり、

    foreach($results as $img){ 
        echo $img->getAttribute('src'); 
    } 
    

    注:例えば、これは各imgためsrc属性をプリントアウトします。

    実際の使用方法の複雑さによっては、XPath syntaxを読むことをお勧めします。これはDOM解析のための非常に強力なツールです。

  • +0

    @halfer上記の結果を無視したいと思います。 –

    +0

    私はXPathを使用したことがないので、提案と構文へのリンクを感謝します。あなたのコードは完全に機能しました。 –

    関連する問題