我是使用Java解析HTML的新手。我想要做的是获取标签之间的文本,但这些标签包含一些可选属性。例如, 例如,我有以下字符串在java中使用swing解析带有某些可选属性的HTML TD标记 HelloWorld!
我想提取只有“World!”的第二个单元格的文本。 (和它已经从 “你好” 不同势属性)
我发现here到目前为止是:
import java.io.*;
import java.net.URL;
import javax.swing.text.*;
import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;
public class HtmlParseDemo {
public static void main(String[] args) throws Exception {
Reader reader = new StringReader("
"+ "Hello
World! "+ "
");HTMLEditorKit.Parser parser = new ParserDelegator();
parser.parse(reader, new HTMLTableParser(), true);
reader.close();
}
}
class HTMLTableParser extends HTMLEditorKit.ParserCallback {
private boolean encounteredATableRow = false;
public void handleText(char[] data, int pos) {
if (encounteredATableRow) {
System.out.println(new String(data));
}
}
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) {
if (t == HTML.Tag.TD) {
encounteredATableRow = true;
}
}
public void handleEndTag(HTML.Tag t, int pos) {
if (t == HTML.Tag.TD) {
encounteredATableRow = false;
}
}
}
输出:
Hello
World!
它输出的所有文字regardles的属性。
有什么想法吗?
2011-11-23
Daisy
+0
我不认为这实际上看起来的元素属性的任何代码。也许你想从那开始。 –