2012-11-18 99 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);