3

我有一个 html 节点的 Domnodelist,我想回显它,包括它们的 html 标签,以便我可以应用正则表达式。当我这样做时:

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

我只得到节点的文本部分,没有 html 标签。

当我尝试时:

回声$节点->保存HTML;

我收到错误:未定义的属性:DOMElement::$saveHTML

我怎样才能做到这一点?

提前致谢,

账单

4

1 回答 1

8

saveHTML是一个函数,所以你需要调用它(你错过了括号)。它也是一部分DOMDocument;该节点将作为参数传入。

所以正确的形式是:

echo $document->saveHTML($node);

重要提示:saveHTML仅支持 PHP 5.3.6 以后的参数。

但是,人们DOMDocument专门使用它以便他们可以在诉诸正则表达式的情况下对其进行处理。看来你在这里试图做相反的事情。如果是这样,请重新考虑您的方法——正则表达式是一种处理 HTML 的 hacky 方式,一旦您决定做任何不完全无关紧要的事情,就会带来麻烦。

于 2012-09-15T15:00:00.067 回答