這是一個流解析器,所以它解析它告訴你它的命中。你應該擴展HTMLEditorKit.ParserCallback
與一些類(我會叫它Parser
),然後覆蓋你關心的方法。
我相信它只適用於「swing中的html dtd」(請參閱here)。如果你想做更復雜的事情,建議你使用一個外部的Java HTML解析庫,比如我之前鏈接過的the ones之一。
這裏是基本的代碼(demo):
import javax.swing.text.html.parser.*;
import javax.swing.text.html.*;
import javax.swing.text.*;
import java.io.*;
class Parser extends HTMLEditorKit.ParserCallback
{
private boolean inTD = false;
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)
{
if(t.equals(HTML.Tag.TD))
{
inTD = true;
}
}
public void handleEndTag(HTML.Tag t, int pos)
{
if(t.equals(HTML.Tag.TD))
{
inTD = false;
}
}
public void handleText(char[] data, int pos)
{
if(inTD)
{
doSomethingWith(data);
}
}
public void doSomethingWith(char[] data)
{
System.out.println(data);
}
}
class HtmlTester
{
public static void main (String[] args) throws java.lang.Exception
{
ParserDelegator pd = new ParserDelegator();
pd.parse(new BufferedReader(new InputStreamReader(System.in)), new Parser(), false);
}
}
好的,你已經把我賣給了JSoup。謝謝! – Ozzy 2012-03-17 01:06:09