SQLの窓

2009年09月27日


Java : WEB 上の XML データの内容を取得する

要点

DOM の部分はどの言語でもほとんど同じです。

Java では、Node を継承して Element があり、Element のほうに getElementsByTagName があるという事を知っておれば良いです。
( Node も Element もインターフェイスです )

また、Java だけではありませんが、<要素>〜</要素> の間のテキストは nodeValue では無く、暗黙のテキストノードがあって、そのノードの nodeValue になります
import java.net.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;

public class Main {

	public static void main(String[] args) {

		try {
			// ターゲット
			URL url = new URL("http://winofsql.jp/exlink.xml");
			// 接続オブジェクト
			HttpURLConnection http = (HttpURLConnection)url.openConnection();
			// GET メソッド
			http.setRequestMethod("GET");
			// 接続
			http.connect();

			// XML 取得の準備
			DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
			DocumentBuilder builder = dbfactory.newDocumentBuilder();
			// InputStream から Documentオブジェクトを取得
			Document doc = builder.parse(http.getInputStream());

			// ここから先は一般的な DOM の処理
			// ルート要素
			Element root = doc.getDocumentElement();
			// System.out.println(root.getNodeName());
			
			// <row> 〜 </row>
			// getElementsByTagName が一番直感的で確実
			NodeList nl1 = root.getElementsByTagName("row");
			// 一つ目のノード
			Node nd1 = nl1.item(0);
			// System.out.println(nd1.getNodeName());
			
			// <fld3>名称</fld3>
			// Node を Element にキャストして getElementsByTagName を使う
			NodeList nl2 = ((Element)nd1).getElementsByTagName("fld3");
			// 最初の row ブロックの fld3 の 列挙
			for( int i = 0; i < nl2.getLength(); i++ ) {

				// <fld3>
				// System.out.println((nl2.item(i)).getNodeName());
				// 要素に挟まれた値は、実際はテキストノードの中にあります
				System.out.println((nl2.item(i)).getFirstChild().getNodeValue());

			}

			// 接続解除
			http.disconnect();
		}
		catch (Exception e) {
		}
	}
}


関連する記事

VBS : XMLファイルのテキストノードの値の更新



タグ:java xml
posted by lightbox at 2009-09-27 00:03 | java : 通信関連 | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり