假设我有一个包含许多不同元素的 HTML 文件,每个元素都有不同的属性。假设我事先不知道这个 HTML 会是什么样子。
使用 PHP 的 DOMDocument,我如何迭代ALL元素并修改它们?我看到的只是 getElementByTagName 和 getElementById 等。我想迭代所有元素。
例如。假设 HTML 看起来像这样(只是一个例子,实际上我不知道结构):
$html = '<div class="potato"><span></span></div>';
我希望能够进行一些简单的 DOM 修改(就像在 Javascript 中一样):
$dom = new DOMDocument();
$dom->loadHTML($html);
// Obviously the code below doesn't work but showcases what I want to achieve
foreach($dom->getAllElements as $element ){
if(!$element->hasClass('potato')){
$element->addClass('potato');
} else{
$element->removeClass('potato');
}
}
$html = $dom->SaveHTML();
所以在这个例子中,我希望生成的 html 看起来像这样:
$html = '<div><span class="potato"></span></div>';
那么如何在 foreach 循环中迭代所有元素并动态进行修改呢?我真的不想为此使用正则表达式。
您可以传递星号*
with getElementsByTagName() http://www.php.net/manual/en/domdocument.getelementsbytagname.php返回所有元素:
foreach($dom->getElementsByTagName('*') as $element ){
}
来自Manual http://www.php.net/manual/en/domdocument.getelementsbytagname.php:
name
要匹配的标签的本地名称(不带命名空间)。特殊值 * 匹配所有标签。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)