删除html标记,但不删除标记内容

时间:2011-09-13 22:55:32

标签: html

我有一堆Word文档被“保存为”过滤后的HTML。 html文件包含我需要删除的无关的ole-links。例如,我想替换:

<h3><a name="OLE_LINK25">My Section Title</a></h3>

<h3>My Section Title</h3>

有关如何以自动方式执行此操作的任何建议?

2 个答案:

答案 0 :(得分:1)

Jsoup可以帮助删除名称以“OLE”开头的所有锚标记。

Elements anchors = doc.select("a[name^=OLE]");
for (Iterator it = anchors.iterator(); it.hasNext(); ) {
    Element anchor = it.next();
    String text = anchor.text();
    Element header = anchor.parent();
    header.text(text);
}

答案 1 :(得分:1)

您可以尝试这样的事情(未经测试,请务必先测试):

sed -i".backup" 's/<([^ ]+) name="OLE[^"]*">([^<]+)<\/\1>/\2/g' *.html

这将在所有* .html文件中仅用<TAG name="OLE....">WHATEVER_HERE</TAG>替换WHATEVER_HERE的所有出现。它还会将每个* .html文件从 FILENAME.html 备份到 FILENAME.html.backup

如有必要,请下载 sed for Windows

gnu sed