Как получить innerHTML из DOMNode?

Why is there a limit anyway?

Существует мнение, что функция, вероятно, не должна содержать более трех аргументов. Если этого больше, становится все труднее понять. Конечно, это не может быть причиной того, что именно так в C #, но это ограничение, возможно, не так уж плохо.

Я бы сказал, что даже этот предел 16 слишком много и уже обнадеживает плохой дизайн.

92
задан kenorb 17 March 2015 в 00:35
поделиться

1 ответ

Сравните этот обновленный вариант с Замечание пользователя руководства 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); 
} 
?> 
147
ответ дан 24 November 2019 в 06:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: