Web*_*urk 16 php parsing html-parsing domdocument
假设我有一个包含许多不同元素的HTML文件,每个元素都有不同的属性.假设我事先不知道这个HTML会是什么样子.
使用PHP的DOMDocument,我如何迭代所有元素并修改它们?我看到的只是getElementByTagName和getElementById等.我想遍历所有元素.
例如.让我们说HTML看起来像这样(只是一个例子,实际上我不知道结构):
$html = '<div class="potato"><span></span></div>';
Run Code Online (Sandbox Code Playgroud)
我希望能够进行一些简单的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();
Run Code Online (Sandbox Code Playgroud)
所以在这个例子中,我希望生成的html看起来像这样:
$html = '<div><span class="potato"></span></div>';
Run Code Online (Sandbox Code Playgroud)
那么如何迭代所有元素并在foreach循环中动态修改?我真的不想为此使用正则表达式.
MrC*_*ode 28
你可以传递一个星号*与getElementsByTagName()它返回的所有元素:
foreach($dom->getElementsByTagName('*') as $element ){
}
Run Code Online (Sandbox Code Playgroud)
从手册:
name
要匹配的标记的本地名称(不带名称空间).特殊值*匹配所有标签.
| 归档时间: |
|
| 查看次数: |
13804 次 |
| 最近记录: |