如何从所有元素节点中删除或清空所有文本节点,而不是从带有 PHP5 DOM 的 HTML 文件中的属性节点中删除或清空?输出的 HTML 必须包含作为原始文件的所有标签和属性(带有表示属性值的文本节点,未触及),但没有文本,就像一个空的 HTML 模板。
问问题
48 次
1 回答
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);
于 2012-11-18T19:39:12.470 回答