1

HTMLページのコードをループして、その内容を再フォーマットしようとしています。div内にいくつかのdivがあり、抽出したいと思います。さまざまな形式のexplode、regex、およびDOMを試しましたが、これを行う方法を正確に見つけることができません。

例:

<div class="section1">
 <div class="section2">number 1</div>
</div>
<div class="section1">
 <div class="section2">number 2</div>
</div>

私が探している結果は、基本的に、セクション1ごとに、セクション2からコンテンツを取得することです。したがって、出力は次のようになります。番号1、番号2

誰かがこのようなことをする方法を知っていますか?

4

2 に答える 2

3

でかなり簡単なはずですDOMXPath

$doc = new DOMDocument;
$doc->loadHTML(/*...*/); // load the HTML here
$xpath = new DOMXPath($doc);
$result = $xpath->query("//div[@class='section1']/div[@class='section2']/text()");

foreach ($result as $item) {
    echo "$item->wholeText\n";
}

実際の動作をご覧ください

于 2012-09-17T13:07:00.543 に答える
1

これはPHPではなくjQueryソリューションです。

$('.section1).each(function() {
    return $(this).html();
});
于 2012-09-17T13:04:30.453 に答える