次の HTML (同じ構造) と次のコードで PHP の DOM 要素を使用して、 class = 'review-text' のdiv からテキストを取得しようとしています。
ただし、これは機能しないようです
HTML
$html = ' <div class="page-wrapper"> <section class="page single-review" itemtype="http://schema.org/Review" itemscope="" itemprop="review"> <article class="review clearfix"> <div class="review-content"> <div class="review-text" itemprop="reviewBody"> Outstanding ... </div> </div> </article> </section> </div> ';
PHPコード
$classname = 'review-text'; $dom = new DOMDocument; $dom->loadHTML($html); $xpath = new DOMXPath($dom); $results = $xpath->query("//*[@class and contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]"); if ($results->length > 0) { echo $review = $results->item(0)->nodeValue; }
クラスごとに要素を選択するための XPATH 構文は、このブログで提供されています。
私は StackOverflow のオンライン チュートリアルから多くの例を試しましたが、どれもうまくいかないようです。何か不足していますか?