0

私は同じクラス名を持つ2つのdivタグを次々と持っています:-

HTML:

<div class='random'>
    <div class="name">
        <h1>Title 1</h1>
        <p>Description</p>
    </div>
    <div class="name">
        <h1>Title 2</h1>
        <p>Other Description</p>
    </div>
</div>
<div class='random'>
    <div class="name">
        <h1>Title 2-1</h1>
        <p>Description2</p>
    </div>
    <div class="name">
        <h1>Title 2-2</h1>
        <p>Other Description2</p>
    </div>
</div>
.....
.....

今、私は両方の説明を別々に取得したい:

出力 1 希望:-
説明

出力 2 希望:-
その他の説明

しかし、私の出力:
説明
その他の説明

コード:

foreach($html->find('div.name p') as $value)
{
    echo $value->innertext;
}

印刷する第 1 のクラスまたは第 2 のクラスのみを指定できる方法はありますか?

4

5 に答える 5

4

First class(es):

$html->find('div.name[1] p')

Second class(es):

$html->find('div.name[2] p')
于 2013-03-22T06:40:16.647 に答える
0

このコードを試してください

$count = count($html->find('div.name p'));


 for($index=0; $index<$count; $index++)
{
$text = getElementByIndex($html, $index);
echo "output $index : $text";
}

function getElementByIndex($html,$index)
{
return $html->find('div.name p', $index);
}

それがあなたを助けることを願っています..

于 2013-03-22T05:11:47.023 に答える
0

このコードを使用するだけです

echo  $htmlEN->find('.name h1', 0)->innertext;
echo  $htmlEN->find('.name p', 0)->innertext;

echo  $htmlEN->find('.name h1', 1)->innertext;
echo  $htmlEN->find('.name p', 1)->innertext;

……

于 2020-07-04T00:58:22.393 に答える
0

PHP シンプル HTML DOM パーサー マニュアル

mixed find ( string $selector [, int $index] )  Find children by the CSS selector. Returns the Nth element object if index is set, otherwise, return an array of object.

ループを使用しないでください。代わりに、次のようにします。

echo "Output 1 desired:-<BR>";
echo $html->find('div.name p', 0) . "<BR>";
echo "Output 1 desired:-<BR>";
echo $html->find('div.name p', 1);
于 2013-03-22T04:23:00.017 に答える