Java - 使用 DOM4J 解析 RSS
在 Java 中解析 XML 有許多方法,包含:DOM、SAX、JDOM 及 DOM4J,其中又以 DOM4J 效能較好且容易操作。
本篇文章就以 DOM4J 解析「點部落 RSS」做為解析的範例:
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 (名稱自取)
6. 開啟 MyScrapbook , 載入我們專案的 Package 進行測試:
7. 在 MyScrapbook 中輸入 new RssReader().parse();
8. 全選程式碼, 按下右鍵選擇 Execute 即可開始執行我們的程式碼
9. 測試結果就會出現在 Console Panel 之中 (可用 Window –> Show View –> Console 選出)