如何从PHP5 DOM中删除或清空所有元素节点中的所有文本节点,而不是HTML文件中的属性节点?输出的HTML必须包含所有标记和属性(文本节点,表示属性值,未触及)作为原始文件,但没有文本,如空HTML模板。
答案 0 :(得分:0)
如果你向我们展示一个例子,那就更清楚了。
无论如何,我认为可以使用preg_match函数使用正则表达式来完成。
首先应该定义哪些元素被视为文本节点,然后使用类似这样的元素:
$finalText = preg_replace( "/\<span\>(.*?)\<\/span\>/is", "$1", $originalText);
在这种情况下,我们将删除 span 节点中包含的文本。
你可以继续用数组添加表达式,如下所示:
$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);