2012-01-26 20 views
1

我使用Zend Framework和Zend_Dom_Query來獲取頁面並在段落中查找。與ZF的DOMElement中的Html

這裏我的源代碼:

$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的內容中?

謝謝

回答

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); 
    } 
} 
+0

它的工作原理!謝謝你的回答。 – skurty

+0

這將如何在ZF 2.x中工作? –