如何删除属性html并替换另一个属性?

时间:2015-12-14 11:00:46

标签: php html

我有一个这样的字符串:

<p>title="abc" </p> <p title="a"><a title="b"></a></p><pre title="c"></pre>

我想在html标记内替换字符串titleclass,并将字符串'title'保留在html标记之外。如果您有任何想法,请告诉我。 感谢。

1 个答案:

答案 0 :(得分:1)

如果您想使用PHP执行此操作,则应使用DOMDocument。也许这SO post可以帮到你。

编辑:对于仅链接的答案感到抱歉。以下是代码示例:

$html = '<p>title="abc" </p><p title="a"><a title="b"></a></p><pre title="c"></pre>';
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$nodes = $dom->getElementsByTagName('*');

foreach ($nodes as $node) {
    if ($node->getAttribute('title')) {
        $node->setAttribute('class', $node->getAttribute('title'));
        $node->removeAttribute('title');
    }
}
$html = $dom->saveHTML();
echo $html;

此代码将为您提供:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><p>title="abc" </p><p class="a"><a class="b"></a></p><pre class="c"></pre></body></html>

如果您不需要,可以删除标题+额外标记(html / body)。 Online example here