top / index / prev / next / target / source

2014-01-20 diary: blancoHtmlParser の使い方

いがぴょん画像(小) 日記形式でつづる いがぴょんコラム ウェブページです。

blancoHtmlParser の使い方

ちょっと HTML をプログラムで処理したくなる時がありますが、blancoHtmlParser はそのような場合に便利なライブラリです。

入手元(ダウンロードサイト)

ここから blancoHtmlParser-0.1.8-src.zip を入手します。

実行に必要なライブラリ

blancocommons-1.1.3.jar
blancohtmlparser-0.1.8.jar
blancoxmlbinding-0.2.2.jar

※バージョン番号は適宜読み替えてください。

HTML を読み込む簡単サンプル

import java.io.File;
import java.io.IOException;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import blanco.commons.util.BlancoFileUtil;
import blanco.html.parser.BlancoHtmlParser;
import blanco.html.parser.BlancoHtmlParserFactory;
import blanco.html.parser.util.BlancoHtmlParserUtil;

public class SimpleHtmlRead {
    public static void main(String[] args) throws IOException, SAXException {
        final File file = new File("./sample.htm");

        final byte[] fileContent = BlancoFileUtil.file2Bytes(file);
        final String encoding = BlancoHtmlParserUtil.decideEncoding(fileContent);
        final BlancoHtmlParser parser = BlancoHtmlParserFactory.getInstance();
        parser.setEncoding(encoding);
        parser.setHandler(new DefaultHandler() {
            @Override
            public void startElement(final String uri, final String localName, final String name, final Attributes atts)
                    throws SAXException {
                System.out.println("タグ開始: " + localName);
            }

            @Override
            public void endElement(final String uri, final String localName, final String name) throws SAXException {
                System.out.println("タグ終了: " + localName);
            }

            @Override
            public void characters(final char[] ch, final int start, final int length) throws SAXException {
                System.out.print(new String(ch, start, length));
            }
        });
        parser.parse(fileContent);
    }
}

この日記について