0

<p>&nbsp;</p>DOMまたは正規表現を使用してこのタイプpタグを削除するにはどうすればよいですか?

このように複数のpも削除したいのですが、

<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
4

3 に答える 3

5

正確に、常に、である文字列を削除したい場合'<p>&nbsp;</p>'、最も簡単で最速の解決策はおそらく次を使用することstr_replace()です:

$new_string = str_replace('<p>&nbsp;</p>', '', $old_string);

このような単純なケースではDOMを使用する必要はないと思います。また、ここでは正規表現は必要ありません。


もちろん、もっと複雑なものを置き換える必要がある場合、それは必ずしも完全に同じ文字列であるとは限りません...まあ、それはDOM操作の時間です;-)

于 2011-07-23T17:17:56.723 に答える
0
preg_replace("|<p>&nbsp;</p>|", "", "<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>");
于 2011-07-23T17:17:33.027 に答える
0

xpath でそれを行いたい場合 (ただし、例は要求が厳しいだけです)、エンティティを文字列 ( Demo )としてstr_replaceクエリできます。&nbsp

$html = '<body><p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Not empty :)</p>
</body>';

$dom = new DomDocument();
$dom->loadhtml($html);
$xpath = new DomXPath($dom);
$col = $xpath->query("//p[text()=\"\xC2\xA0\"]"); # &nbsp;
foreach($col as $e) {
    $e->parentNode->removeChild($e);
}
echo $dom->saveXML($dom->getElementsByTagName('body')->item(0));

&nbsp;xpathでクエリを実行する必要がある場合、これが役立つことを願っています。

以下も参照してください: XPATH を使用して、以下を含むテキストを検索します。

于 2011-07-23T17:46:05.360 に答える