【发布时间】:2011-06-08 05:00:54
【问题描述】:
我正在尝试根据 ID 标签删除某些链接,但保留链接的内容。比如我想转
Some text goes <a href="http://www.domain.tdl/" id="remove">here</a>
到
Some text goes here
我已经尝试使用下面的。
$dom = new DOMDocument;
$dom->loadHtml(mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8"));
$xp = new DOMXPath($dom);
foreach($xp->query('//a[contains(@id="remove")]') as $oldNode) {
$revised = strip_tags($oldNode);
}
$revised = mb_substr($dom->saveXML($xp->query('//body')->item(0)), 6, -7, "UTF-8");
echo $revised;
大致取自 here,但它只是吐出与 $html 相同的内容。
关于我将如何实现这一目标的任何想法?
【问题讨论】:
-
您没有在此处修改您的文档,这就是它吐出相同内容的原因。您在 DOM 对象上提供调用
replaceChild的示例,您只是创建变量,稍后用saveXML的输出覆盖该变量 -
好问题,+1。请参阅我对精确选择所需节点的单个 XPath 表达式解决方案的回答。 :)