使用DOMDocument,是否可以获取某个DOM中存在的所有元素?
2022-08-30 19:52:54
假设我有一个HTML文件,其中包含许多不同的元素,每个元素都有不同的属性。假设我事先不知道这个HTML会是什么样子。
使用PHP的DOMDocument,我如何迭代所有元素并修改它们?我看到的只是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>';
那么,如何迭代所有元素并在前循环中动态进行修改呢?我真的不想为此使用正则表达式。