如何获得DOMNode的innerHTML?
在 PHP DOM 实现中,你使用什么函数来获取给定 DOMNode 的内部 HTML?有人能给出可靠的解决方案吗?
当然,outerHTML也可以。
在 PHP DOM 实现中,你使用什么函数来获取给定 DOMNode 的内部 HTML?有人能给出可靠的解决方案吗?
当然,outerHTML也可以。
将此更新的变体与 PHP 手册用户注释 #89718 进行比较:
<?php
function DOMinnerHTML(DOMNode $element)
{
$innerHTML = "";
$children = $element->childNodes;
foreach ($children as $child)
{
$innerHTML .= $element->ownerDocument->saveHTML($child);
}
return $innerHTML;
}
?>
例:
<?php
$dom= new DOMDocument();
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->load($html_string);
$domTables = $dom->getElementsByTagName("table");
// Iterate over DOMNodeList (Implements Traversable)
foreach ($domTables as $table)
{
echo DOMinnerHTML($table);
}
?>
下面是函数式编程风格的版本:
function innerHTML($node) {
return implode(array_map([$node->ownerDocument,"saveHTML"],
iterator_to_array($node->childNodes)));
}