5

私はdomCrawlersymfonyフレームワークで使用しています。それを使ってhtmlからコンテンツをクロールしました。ここで、ID を持つ要素内のテキストを取得する必要があります。以下のコードを使用してテキストを取得できます。

$nodeValues = $crawler1->filter('#idOfTheElement')->each(function (Crawler $node, $i) {
            return $node->text();
        });

element( #idOfTheElement) には、いくつかのスパン、ボタンなど (いくつかのクラスを持つもの) が含まれています。私はそれらの中の内容を望んでいません。その中の他のいくつかの要素を除外して、要素からテキストを取得する方法。

注:取得したいテキストには、要素 #idOfTheElement 以外のラッパーはありません

Html は次のようになります。

<li id='#idOfTheElement'>Tel :<button data-pjtooltip="{dtanchor:'tooltipOpposeMkt'}" class="noMkt JS_PJ" type="button">text :</button><dl><dt><a name="tooltipOpposeMkt"></a></dt><dd><div class="wrapper"><p><strong>Signification des pictogrammes</strong></p><p>Devant un numéro, le picto <img width="11" height="9" alt="" src="something"> signale une opposition aux opérations de marketing direct.</p><span class="arrow">&nbsp;</span></div></dd></dl>12 23 45 88 99</li>
4

2 に答える 2

4

要素 html を取得して、タグを取り除くことができます

preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $node->html());
于 2015-05-06T15:24:24.760 に答える