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

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

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

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

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

эхо $node->saveHTML;

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

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

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

Билл


person user1592380    schedule 15.09.2012    source источник
comment
код у вас работает?   -  person StaticVariable    schedule 15.09.2012
comment
Эта часть кода теперь работает. Спасибо, jhonraymos.   -  person user1592380    schedule 17.09.2012


Ответы (1)


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

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

echo $document->saveHTML($node);

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

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

person Jon    schedule 15.09.2012