【发布时间】:2011-10-11 05:10:50
【问题描述】:
如何使用 DOM 解析器删除 span 标签中的 所有 属性,但 除了 这两个属性,
<span style="text-decoration: underline;">cultura</span>接受
<span style="text-decoration: line-through;">heart</span>接受
拒绝这个,
<span style="font-family: " lang="EN-US">May</span>接受
有可能吗?
我从另一个 post 制作的工作代码,
$content = '
<span style="text-decoration: underline;">cultura</span>l <span style="text-decoration: line-through;">heart</span>
<span style="font-family: " lang="EN-US">May</span>
';
$dom = new DOMDocument();
$dom->loadHTML($content);
foreach( $dom->getElementsByTagName( "span" ) as $span )
{
foreach( $span->attributes as $attrib )
{
$span->removeAttributeNode( $attrib );
}
}
$content = $dom->saveHTML();
但是这段代码会删除span标签内的所有属性...
【问题讨论】:
-
您不是特别清楚:您要删除除样式属性之外的所有内容吗?还是只是文本装饰样式?
-
对不起。是的,除了文本装饰样式。
-
CSS 不在 DOM 的范围之内 - 您可以轻松删除除样式属性之外的所有属性,但您需要单独解析实际的样式定义。
标签: php dom html-parsing domdocument