用class删除div并保留所有其他html

时间:2015-03-26 17:39:04

标签: php html regex

我的HTML内容:

$content = <div class="class-name some-other-class">
<p>ack</p>
</div>

目标:使用class="class-name删除div,以便我留下:

<p>ack</p>

我知道strip_tags($content, '<p>');会在这个实例中完成这项工作,但我希望能够使用某个类来定位div并保留其他div等。

而且我知道你不应该通过正则表达式传递html - 所以最好的方法/正确的方法来实现这一点。

2 个答案:

答案 0 :(得分:0)

也许有一些jQuery? '$( “类名。”)除去();'

答案 1 :(得分:0)

$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($content); // loads your HTML
$xpath = new DOMXPath($doc);
// returns a list of all links with class containing class-name
$nlist = $xpath->query("div[contains(@class, 'class-name')]");

// Remove the nodes from the xpath query
foreach($nlist as $node) {
   $node->parentNode->removeChild($node);
}

echo $doc->saveHtml();