带ZF的DOMElement中的Html

时间:2012-01-26 11:30:28

标签: php zend-framework xpath

我正在使用Zend Framework和Zend_Dom_Query来获取页面并在段落中查找。

这是我的源代码:

$dom = new Zend_Dom_Query($newsData);

$content = '';
$results = $dom->query('p');
foreach ($results as $result) {
    $content .= $result->nodeValue;
}

这样,如果段落包含其他html元素,则会删除它们。 例如,如果代码为:<p><a href="#">My link</a></p>,则nodeValue(或textContent)为My link而不是<a href="#">My Link</a>

如何将html保存在DOMElement的内容中?

谢谢

1 个答案:

答案 0 :(得分:4)

class IndexController extends Zend_Controller_Action
{
    function getInnerHTML($Node)
    {

        $Document = new DOMDocument();
        $Document->appendChild($Document->importNode($Node,true));
        return $Document->saveHTML();
    }

    function domAction ()
    {
        $this->_helper->ViewRenderer->setNoRender ();
        $newsData = '<body><p><a href="#">My link</a></p></body>';
        $dom = new Zend_Dom_Query($newsData);

        $content = '';
        $results = $dom->query('p/*');
        foreach ($results as $result) {
            $content .= $this->getInnerHtml ($result);
        }

        echo htmlentities ($content);
    }
}