JsoupでRSSのパース処理 - java

 

外部のRSSフィードをパースすることになって、 ROMEinforma やライブラリなしの方法を試してみたけど、 どの方法もめんどくさくていきついたのが Jsoup。maven使ってパースするまでのメモ。

準備

いつものようにpom.xmlに記述。

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.7.3</version>
</dependency>

パース処理

こんなに簡単

// URLから直接Document取得
Document doc = Jsoup.connect("http://hoge").get();
// リストになってる要素を指定
for (Element element : doc.select("item")) {
    System.out.println(element.select("title").first().text());
    System.out.println(element.select("link").first().text());
    // HTMLタグ除去も簡単
    Element content = element.select("content").first().text();
    Jsoup.parse(element.select("content|encoded").first().text()).text());
    System.out.println(element.select("content").first().text());
}

Basic認証突破

String auth = new String(Base64.encodeBase64("id:pass".getBytes()));
Document doc = Jsoup.connect(url).header("Authorization", "Basic " + auth).get();

参考

Sunny

arktks