我使用DOMXPATH从attributes
标记中删除所有 p
并且工作正常,
// Loop all p.
foreach( $dom->getElementsByTagName( "p" ) as $p )
{
// Loop all attributes in p.
foreach( $p->attributes as $attrib )
{
// Remove all attribute from p.
$p->removeAttributeNode( $attrib );
}
}
现在我只想从p标签中删除样式 attribute
。
// Loop all p.
foreach( $dom->getElementsByTagName( "p" ) as $p )
{
// Loop all attributes in p.
foreach( $p->attributes as $attrib )
{
// Remove only the style attribute
$p->removeAttributeNode( $p->getAttributeNode( "style" ) );
}
}
但我有这个错误,
可捕获的致命错误:参数1传递给 DOMElement :: removeAttributeNode()必须是DOMAttr的一个实例, boolean given ..
如何仅删除样式 attribute
?
答案 0 :(得分:3)
替换此
// Loop all attributes in p.
foreach( $p->attributes as $attrib )
{
// Remove only the style attribute
$p->removeAttributeNode( $p->getAttributeNode( "style" ) );
}
有这样的事情:
// fetch style node
$sNode = $p->getAttributeNode( "style" )
// only procede, if $p actually has a style node
if ($sNode) {
$p->removeAttributeNode( $sNode );
}
(未经测试,抱歉,我这里没有安装服务器)