【发布时间】:2009-03-17 11:12:55
【问题描述】:
如何使用 Java 从 html 文件中删除 cmets 和 cmets 的内容,其中 cmets 的编写方式如下:
<!--
在这方面需要任何想法或帮助。
【问题讨论】:
-
这个问题应该命名为“How to remove cmets from HTML using Java”
标签: java
如何使用 Java 从 html 文件中删除 cmets 和 cmets 的内容,其中 cmets 的编写方式如下:
<!--
在这方面需要任何想法或帮助。
【问题讨论】:
标签: java
看看JTidy,HTML Tidy 的 java 端口。您可以覆盖 PPrint 对象的打印方法以忽略注释标签。
【讨论】:
如果你没有有效的xhtml,一个评论让我想起了,你应该首先申请jtidy来整理html并使其成为有效的xhtml。
有关 jtidy 的示例代码,请参见 this。
然后我会将 html 转换为 DOM 实例。
像这样:
final DocumentBuilderFactory newFactory = DocumentBuilderFactory.newInstance();
final DocumentBuilder documentBuilder = newFactory.newDocumentBuilder();
Document document = documentBuilder.parse( new InputSource( new StringReader( string ) ) );
然后我会浏览文档树并根据需要修改节点。
【讨论】:
尝试一个简单的正则表达式
String commentless = pageString.replaceAll("<!--[\w\W]*?-->", "");
编辑:解释正则表达式:
<!-- 匹配文字注释开始[\w\W] 匹配注释中的每个字符(甚至是换行符)*? 匹配多个“任意字符”,但匹配可能的最小数量(不贪心)--> 关闭评论【讨论】: