興味の赴くままに、今度はWeb上からXMLを取得して、解析するコードを書いてみた。
元のXMLはclipTagsから取得。
このサイトはネットの情報をかき集め、「今ネット上でホットな話題」を独自に採点して順位付けて表示してくれる。
2ちゃんねるのまとめサイトの拡大進化版と考えてもいいだろう。
http://www.cliptags.net/tops?lang=jpn
ちょうどこのサイトに「RSS」なるボタンがあったので、このRSSから「title」だけ取得してみる。
package xml; import java.net.URL; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class XmlParseTest { private static String url = "http://www.cliptags.net/top/index.rss?lang=jpn"; public static void main(String args[]) throws Exception { //DOMの準備をする DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); //文書を読み込む Document doc = db.parse(new URL(url).openStream()); //ルート要素を得る Element root = doc.getDocumentElement(); NodeList list = doc.getElementsByTagName("title"); for(int i=0; i<list.getLength();i++){ Node n = list.item(i); for(Node ch = n.getFirstChild(); ch != null; ch = ch.getNextSibling()){ System.out.println(ch.getNodeName() + ":" + ch.getNodeValue()); } } } }
結果は以下のようになる。
Web上からXMLを取得して、解析して出力することができた。
#text:ClipTags #text:無料OS 「Ubuntu」にスマートフォン版登場、Android対応ハードで動作 【増田 @maskin】 : TechWave ・・・