我正在使用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的内容中?
谢谢
答案 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);
}
}