2012-11-18 96 views
0

如何從所有元素節點中刪除或清空HTML5文件中的屬性節點上的所有文本節點並使用PHP5 DOM?輸出的HTML必須包含所有的標籤和屬性(帶有表示屬性值的文本節點,不受影響)作爲原始文件,但不包含文本,如空的HTML模板。從元素節點中刪除文本節點但不從屬性節點中刪除類型

+1

你嘗試過什麼到目前爲止? –

+0

我是新來的PHP,並沒有太多的編程技能,所以我不知道要使用什麼方法,也許removeChild,但是,我怎樣才能避免從元素屬性中刪除值。 – user1834068

回答

0

如果您向我們展示一個示例,情況會更加清晰。

無論如何,我認爲它可以使用正則表達式使用preg_match函數來完成。

您首先應該確定哪些是作爲文本節點你考慮的元素,然後使用類似這樣的例子:

$finalText = preg_replace("/\<span\>(.*?)\<\/span\>/is", "$1", $originalText); 

在這種情況下,我們刪除包含在跨度文本節點。

而且你可以不斷添加表情與陣列,像這樣:

$a = array(
     "/\[b\](.*?)\[\/b\]/is", 
     "/\[i\](.*?)\[\/i\]/is", 
     "/\[u\](.*?)\[\/u\]/is", 
     "/\[t\](.*?)\[\/t\]/is", 
     "/\[d\](.*?)\[\/d\]/is", 
     "/\[url=(.*?)\](.*?)\[\/url\]/is", 
     "/\[img\](.*?)\[\/img\]/is" 
    ); 

    $b = array(
     "$1", 
     "$1", 
     "$1", 
     "$1",  
     "$1", 
     "$2", 
     "" 
    ); 

    $finalText = preg_replace($a, $b, $originalText);