JSPでXMLを解析する方法|JSTL x:parseタグの使い方を徹底解説
<x:parse>タグは、属性で指定されたXMLデータ、またはタグ本体に記述されたXMLデータを解析(パース)するために使用します。JSTL(JSP Standard Tag Library)のXMLタグライブラリに属するタグで、Javaコードを直接書かずにJSP上でXMLを処理できるのが大きな特徴です。
x:parseタグの主な属性
<x:parse>タグには、以下の属性が用意されています。
| 属性 | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
| var | 解析結果のXMLデータを格納する変数 | いいえ | なし |
| xml | 解析対象のドキュメント本文(String型またはReader型) | いいえ | タグ本体 |
| systemId | ドキュメント解析時に使用するシステム識別子URI | いいえ | なし |
| filter | ソースドキュメントに適用するフィルター | いいえ | なし |
| doc | 解析対象となるXMLドキュメント | いいえ | Page |
| scope | var属性で指定した変数のスコープ | いいえ | Page |
| varDom | 解析結果のXMLデータ(DOM形式)を格納する変数 | いいえ | Page |
| scopeDom | varDom属性で指定した変数のスコープ | いいえ | Page |
利用前の準備
XML関連のJSTLタグを使用する場合は、taglibディレクティブでXMLタグライブラリのURIを宣言する必要があります。また、XPathの処理のためにApache Xalanなどのライブラリが必要になることがあるため、事前に動作環境を確認しておくと安心です。
使用例:外部XMLファイルの読み込みと解析
続いて、タグ本体ではなく外部のXMLファイルを読み込んで解析する方法を見ていきましょう。まず、以下の内容でbooks.xmlファイルを作成します。
<books>
<book>
<name>Padam History</name>
<author>ZARA</author>
<price>100</price>
</book>
<book>
<name>Great Mistry</name>
<author>NUHA</author>
<price>2000</price>
</book>
</books>
次に、同じディレクトリにmain.jspファイルを配置し、以下のように記述します。
<%@ taglib prefix = "c" uri = "https://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "x" uri = "https://java.sun.com/jsp/jstl/xml" %>
<html>
<head>
<title>JSTL x:parse Tags</title>
</head>
<body>
<h3>Books Info:</h3>
<c:import var = "bookInfo" url = "https://localhost:8080/books.xml"/>
<x:parse xml = "${bookInfo}" var = "output"/>
<b>The title of the first book is</b>:
<x:out select = "$output/books/book[1]/name" />
<br>
<b>The price of the second book</b>:
<x:out select = "$output/books/book[2]/price" />
</body>
</html>
コードのポイント
c:importタグでURLからbooks.xmlの内容を読み込み、変数bookInfoに格納します。x:parseタグがbookInfoの文字列を解析し、その結果を変数outputに保存します。x:outタグはXPath式を評価して、該当するノードの値を出力します。たとえば「$output/books/book[1]/name」は、最初のbook要素内にあるname要素を表します。
https://localhost:8080/main.jspにアクセスすると、以下の結果が表示されます。
Books Info: The title of the first book is:Padam History The price of the second book: 2000
-
【Android】XmlPullParserを使ってXMLを解析する方法をステップ別に解説
XmlPullParserとは XmlPullParserは、Androidに標準で組み込まれているXMLパーサーです。イベント駆動型(プル型)の解析方式を採用しており、XMLドキュメントを先頭から順に読み進めながら「開始タグ」「テキスト」「終了タグ」といったイベントを一つずつ処理していきます。DOMのようにドキュメント全体をメモリ上に展開しないため、省メモリかつ高速に動作し、リソースが限られたモバイル環境でのXML解析に最適です。 本記事では、XmlPullParserを使ってユーザー情報が記述されたXMLファイルを解析し、その結果をListViewに表示するサンプルアプリの作成手順を、ステ
-
AndroidでHTMLを解析する方法!Jsoupを使った実装手順をステップごとに解説
この記事では、AndroidアプリでHTMLを解析(パース)する方法を、人気のJavaライブラリ「Jsoup」を使ったサンプルコードとともに解説します。Webサイトのタイトルやリンク情報を取得して画面に表示するまでの一連の流れを、初心者にもわかるようにステップごとに紹介します。HTML解析にはJsoupが便利AndroidでHTMLを扱う場合、HTMLパーサーライブラリのJsoupを利用するのが定番です。Jsoupを使えば、URLからHTMLを取得し、CSSセレクタに近い直感的な記法で任意の要素を簡単に抽出できます。スクレイピングやWeb上のデータ取得処理を少ないコード量で実装できるのが大きな