Webページは HTML (HyperText Markup Language) の仕様に基づき記述されている HTML 文書 (HTML document) である。タグにより文書構造がマークアップされている。
Webページから情報を抽出する際、抽出箇所を文書構造により特定したい場合や、単にタグを除去してテキスト部分を得たい場合がある。
これらの処理は、文字列操作により実現することもできるが、 HTML文書の構造を解析して木構造を生成する HTMLパーサ を利用するのが適切である。
import javax.swing.text.*;
import javax.swing.text.html.*;
Reader reader; // 適当に生成されているものとする
EditorKit kit = new HTMLEditorKit();
Document doc = kit.createDefaultDocument();
try {
kit.read(reader, doc, 0);
ElementIterator it = new ElementIterator(doc);
Element elem;
while ((elem = it.next()) != null) {
System.out.print(
"Element " + elem.getName() +
"(" + elem.getStartOffset() + "-" +
elem.getEndOffset() + ")");
}
} catch (Exception e) {
e.printStackTrace();
}