Как отобразить содержимое узлов, включая HTML-теги, используя php domdocument

У меня есть Domnodelist узлов html, которые я хотел бы включить, включая их теги html, чтобы я мог применить регулярное выражение. Когда я делаю:

            foreach ($nodeList as $key => $node) {
               echo $node->nodeValue;
            }

Я получаю только текстовые части узлов без HTML-тегов.

когда я пытаюсь:

echo $ node-> saveHTML;

Я получаю сообщение об ошибке: неопределенное свойство: DOMElement::$saveHTML

Как я могу это сделать?

Заранее спасибо,

Билл

1 ответ

Решение

saveHTML это функция, так что вам нужно ее вызвать (вам не хватало паренов). Это также часть DOMDocument; узел будет передан в качестве параметра.

Итак, правильная форма:

echo $document->saveHTML($node);

Важная заметка: saveHTML поддерживает только параметр из PHP 5.3.6 и далее.

Тем не менее, люди используют DOMDocument специально, чтобы они могли обрабатывать его, не прибегая к регулярным выражениям. Кажется, что здесь вы пытаетесь сделать наоборот. Если это так, пересмотрите свой подход - регулярные выражения - это хакерский способ обработки HTML, который доставит неприятности, как только вы решите сделать что-то не совсем тривиальное.

Другие вопросы по тегам