要点 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 : 通信関連の最新記事】
- Java : WEB上のテキストファイルを取得する
- Java11 + Visual Studio Code + JavaMail( with JavaBeans Activation Framework )
- Javamail で IMAP 受信
- OkHttp v3.8.0 jar( と okio 1.13.0.jar ) を Eclipse のプロジェクトに追加して一般的な POST 送信を行う
- java をコマンドプロンプトからビルドして実行するサンプル。( メール送信が初心者には楽しいはず )
- Eclipse + JFace : HttpURLConnection で GET
- javamail でメール送信と、付属のバッチビルド用のスクリプトの解説
- Java : バッチでテストする Twiiter API の『検索処理』
- google-gson(Java) を使って、JSON を 定義済みクラスのオブジェクトに一括変換する
- Java : RSS(Document) から、item の中の先頭の指定した要素の値を取得するクラス
- google-gson で、JSON 文字列の構成要素の一覧を取り出す処理
- java : Apache commons-net-3.0.1 を使ってごく自然に FTPS(セキュア) でファイルのアップロード/ダウンロード
- javamail 1.4.4 : IMAP で、ユーザから別のユーザへメッセージを全て(範囲指定で)コピーする
- javamail 1.4.4 : IMAP のメール受信イベントでメールを受け取ったら処理を行う