Java - 使用 DOM4J 解析 RSS

  • 11171
  • 0

Java - 使用 DOM4J 解析 RSS

在 Java 中解析 XML 有許多方法,包含:DOM、SAX、JDOM 及 DOM4J,其中又以 DOM4J 效能較好且容易操作。

本篇文章就以 DOM4J 解析「點部落 RSS」做為解析的範例:

2011-01-04_11-44-35

 

1. 首先,建立 RssReader 類別,建立靜態方法 parse (名稱自取)

 

2. 仔細看一下點部落 RSS 的結構, 瞭解想要擷取的 XML 階層結構 rss –> channel –> item

 

3. 擷取 item 下的 title, link, pubDate 元素內容值及 source 元素內容值及其 url 屬性內容值

參考程式碼如下:

package chhuang.tw.com.dotblogs.www;

import java.net.URL;
import java.util.Iterator;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class RssReader
{
    public static void parse()
    {
        try
        {
            URL url = new URL("http://www.dotblogs.com.tw/MainFeed.aspx?GroupID=701");
            SAXReader saxReader = new SAXReader();
            Document document = saxReader.read(url);

            Element channel = (Element) document.getRootElement().element("channel");
            for (Iterator i = channel.elementIterator("item"); i.hasNext();)
            {
                Element element = (Element) i.next();
                System.out.println("title: " + element.elementText("title"));
                System.out.println("link: " + element.elementText("link"));
                System.out.println("pubDate: " + element.elementText("pubDate"));

                Element source = element.element("source");
                Attribute attribute = source.attribute("url");
                System.out.println("source content: " + source.getStringValue());
                System.out.println("source url: " + attribute.getValue());
                System.out.println();
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

 

4. 執行我們的程式碼, 在 Project Explorer 中在我們的開發專案上按下右鍵

 

5. 選擇 New –> Other –> Java Run / Debug –> Scrapbook Page –> Next –> 輸入 MyScrapbook (名稱自取)

2011-01-04_11-57-46

 

6. 開啟 MyScrapbook , 載入我們專案的 Package 進行測試:

2011-01-04_12-01-20

 

7. 在 MyScrapbook 中輸入 new RssReader().parse();

 

8. 全選程式碼, 按下右鍵選擇 Execute 即可開始執行我們的程式碼

2011-01-04_12-04-14

 

9. 測試結果就會出現在 Console Panel 之中 (可用 Window –> Show View –> Console 選出)

2011-01-04_12-06-28