用org.htmlparser包解析html正文内容的实现
在开发内容管理系统时,因信息表的正文字段存储的是带html格式的内容,如果要统计正文的字数,需要首先过滤掉html标签。可使用org.htmlparser很方便地将正文字段的html标签过滤掉,得到只含文字内容的字符串。下面是使用htmlparser获取html正文的代码:
public static String getHtmlText(String htmlContent) throws Exception
{
if(htmlContent==null)htmlContent="";
//增加一个<br/>,经测试,如果正文为纯文本,org.htmlparser会把参数当作一个文件处理
StringBuffer sbf = new StringBuffer("");
sbf.append("<br />").append(htmlContent);
Parser parser = new Parser(sbf.toString());
TextExtractingVisitor visitor = new TextExtractingVisitor();
parser.visitAllNodesWith(visitor);
String sReturn = visitor.getExtractedText();
sReturn = sReturn.replace(" ", "");//去掉空格以便统计字数
return sReturn;
}
需要特别注意的是,上面的代码中将htmlContent正文增加了<br/>标签后再进行后续处理,为什么?这是因为,如果正文中不带html标签,org.htmlparser包会把传入参数作为一个文件或URL连接处理,经测试,如果传入的字符串不包含html标签,例如传入字符串为“你好”,则抛出文件IO异常,提示找不到文件“你好”,将传入字符串增加一个html标签后就不会出现问题。