我还不太明白,我正在寻找一些代码,可以为HTML元素添加属性。
例如,假设我有一个包含<a>
的字符串,并且需要为<a>
添加属性,那么<a>
将被添加style="xxxx:yyyy;"
。你会如何做到这一点?
理想情况下,它应该可以为任何标签添加任何属性。
我还不太明白,我正在寻找一些代码,可以为HTML元素添加属性。
例如,假设我有一个包含<a>
的字符串,并且需要为<a>
添加属性,那么<a>
将被添加style="xxxx:yyyy;"
。你会如何做到这一点?
理想情况下,它应该可以为任何标签添加任何属性。
已经说了无数遍了。不要使用正则表达式来解析HTML。
$dom = new DOMDocument();
@$dom->loadHTML($html);
$x = new DOMXPath($dom);
foreach($x->query("//a") as $node)
{
$node->setAttribute("style","xxxx");
}
$newHtml = $dom->saveHtml()
DOMDocument()
在给定标签周围添加 <html>
包装器? - Sisir$node->c14n()
来获取节点的规范化HTML。它不会包含<html>
标签。 - Byron Whitlock这里使用正则表达式:
$result = preg_replace('/(<a\b[^><]*)>/i', '$1 style="xxxx:yyyy;">', $str);
但是正则表达式无法解析格式不正确的HTML文档。
[^><]
中需要 <
? - Déjà vua
标签,例如:<a href="xxx" <p>yyy</p>
;在这种情况下,如果我没有包含<
,那么正则表达式将认为a
标签的范围是<a href="xxx" <p>
。 - Vantomex<
作为字面字符,最好失败匹配,而不是进一步破坏HTML。 - Tim Pietzcker