我想在PHP中使用DOMDocument來添加/解析HTML文檔中的東西。從我所能讀到的,將formOutput設置爲true並將preserveWhiteSpace設置爲false應該保持製表符和換行符的順序,但它看起來不像是新創建或附加的節點。使用PHP的DomDocument時保持換行符appendChild
下面的代碼:
$dom = new \DOMDocument;
$dom->formatOutput = true;
$dom->preserveWhiteSpace = false;
$dom->loadHTMLFile($htmlsource);
$tables = $dom->getElementsByTagName('table');
foreach($tables as $table)
{
$table->setAttribute('class', 'tborder');
$div = $dom->createElement('div');
$div->setAttribute('class', 'm2x');
$table->parentNode->insertBefore($div, $table);
$div->appendChild($table);
}
$dom->saveHTMLFile($html)
這裏的HTML是什麼樣子:
<table>
<tr>
<td></td>
</tr>
</table>
這裏就是我想:
<div class="m2x">
<table class="tborder">
<tr>
<td></td>
</tr>
</table>
</div>
這裏就是我得到:
<div class="m2x"><table class="tborder"><tr>
<td></td>
</tr></table></div>
有什麼我做錯了嗎?我試過用盡可能多的不同方式使用Google搜索,因爲我沒有運氣。
很棒的功能!但不幸的是,它使用void元素時會縮小太多空間。 – Stan