读书人

怎么提取html中的文本

发布时间: 2012-01-05 22:36:54 作者: rapoo

如何提取html中的文本?
RT,我想做一个将html文件转换为text文本的程序.
我希能实现:对一个html中的文本,我用程序转换得到的结果与用IE打开后用CTRL+C得到的基本一致。

我写了如下代码:
import javax.swing.text.*;
import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;
import java.io.*;

public class ParserTest{
public static void main(String[] args)throws Throwable{
Reader r =new StringReader( " <html> <body> A  B </body> </html> ");
ParserCallback pc =new ParserCallback(System.out);
HTMLEditorKit.Parser p =new ParserGetter().getParser();
p.parse(r,pc,true);
}
}
class ParserCallback extends HTMLEditorKit.ParserCallback{
private PrintStream ps;
public ParserCallback(PrintStream ps){
this.ps =ps;
}
public void handleText(char[] text,int position){
ps.println(text);
}
}
class ParserGetter extends HTMLEditorKit{
//purely to make this method public
public HTMLEditorKit.Parser getParser(){
return super.getParser();
}
}

但是程序的输出是:
A??B

但我期望的应该是:
A B

谁能告诉我这是为什么?如何解决?
或者有其他更好的方法实现我的需求?


[解决办法]
特殊字符需要替换,如空格, < > 等。
复杂的html推荐使用正则表达式。
[解决办法]
你用替换方法将??替换为空格就可以了

读书人网 >J2SE开发

热点推荐