2011-07-06 28 views
2

我試圖通過保持html結構來修改所有可見的文本(含義:鏈接,段落,標題等),然後渲染新的頁面。PHP HTML DOM:如何選擇所有可見/可讀文本?

基本上我想打亂所有可讀的文本而不破壞設計/功能。

我試過用Zend_Dom_Query,但如何選擇文本?

$dom = new Zend_Dom_Query($html); 
    $results = $dom->query(???); 

或者還有其他的/更好的方法嗎?

非常感謝。


輸入:

<html> 
    <head>....</head> 
    <body> 

    <div> 
     <h1>Headline</h1> 
     <h2>Subheadline</h2> 
     <p>Some text</p> 
     <a href="..."> 
     A Link 
     <img src="..." /> 
     <span style="display:none">additional text</span> 
     </a> 
    </div> 

    </body> 
</html> 

輸出:

<html> 
    <head>....</head> 
    <body> 

    <div> 
     <h1>Hinladee</h1> 
     <h2>Suialebdhne</h2> 
     <p>Smoe txet</p> 
     <a href="..."> 
     A Lnik 
     <img src="..." /> 
     <span style="display:none">anodiaditl txet</span> 
     </a> 
    </div> 

    </body> 
</html> 
+0

對不起,如果我的描述不夠清楚。網站佈局和html結構不應受到影響。如果元素是可見性:隱藏或顯示:沒有關係。我會用一個例子更新我的帖子。 – Mayko

+1

@Makyo由Yoshi刪除的答案有答案。嘗試使用XPath的// text()來獲取文檔中的所有DOMText節點。 – Gordon

回答

0

解決方案:

感謝@Yoshi和@Gordon。這正是我所尋找的:

$dom = new Zend_Dom_Query($html); 
$results = $dom->query("//text()");