如何使用php domdocument回显包含html标签的节点内容

时间:2012-09-15 14:57:46

标签: php domdocument dom-node

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

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

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

当我尝试:

echo $ node-> saveHTML;

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

我该怎么做?

提前致谢,

比尔

1 个答案:

答案 0 :(得分:6)

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

所以正确的形式是:

echo $document->saveHTML($node);

重要提示:saveHTML仅支持PHP 5.3.6及更高版本的参数。

但是,人们专门使用DOMDocument,以便他们可以在没有诉诸正则表达式的情况下处理。看来你在这里正试图做相反的事情。如果是这样,重新考虑你的方法 - 正则表达式是一种处理HTML的黑客方式,这会给你带来麻烦,第二次你决定做任何并非完全无关紧要的事情。