プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

XMLドキュメントにXSL変換を適用するには?JSTLのx:transformタグの使い方

<x:transform> タグは、XMLドキュメントに対してXSL変換(XSLT)を適用するためのJSTL(JSP標準タグライブラリ)タグです。XML形式のデータをHTMLテーブルなど別の形式へ動的に変換したい場面で活躍します。

x:transformタグの主な属性

<x:transform> タグには、以下の属性を指定できます。

属性説明必須デフォルト値
docXSLT変換の入力となる元のXMLドキュメントいいえBody(タグの本文)
docSystemId元のXMLドキュメントのURIいいえなし
xslt変換ルールを定義したXSLTスタイルシートはいなし
xsltSystemId元のXSLTドキュメントのURIいいえなし
result変換結果を受け取るResultオブジェクトいいえページに出力
var変換後のXMLドキュメントを格納する変数いいえページに出力
scope変換結果を公開する変数のスコープいいえなし

使用例

まず、次のようなXSLTスタイルシート style.xsl を準備します。

<?xml version = "1.0"?>
<xsl:stylesheet xmlns:xsl = "https://www.w3.org/1999/XSL/Transform"
version = "1.0">
   <xsl:output method = "html" indent = "yes"/>
   <xsl:template match = "/">
      <html>
         <body>
            <xsl:apply-templates/>
         </body>
      </html>
   </xsl:template>
   <xsl:template match = "books">
      <table border = "1" width = "100%">
         <xsl:for-each select = "book">
            <tr>
               <td>
                  <i><xsl:value-of select = "name"/></i>
               </td>
               <td>
                  <xsl:value-of select = "author"/>
               </td>
               <td>
                  <xsl:value-of select = "price"/>
               </td>
            </tr>
         </xsl:for-each>
      </table>
   </xsl:template>
</xsl:stylesheet>

このスタイルシートでは、books 要素内の各 book 要素を順番に取り出し、書名・著者・価格を1行ずつテーブル形式で表示するよう定義しています。

続いて、以下の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:transform Tags</title>
   </head>
   <body>
      <h3>Books Info:</h3>
       <c:set var = "xmltext">
          <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>
       </c:set>
       <c:import url = "https://localhost:8080/style.xsl" var = "xslt"/>
       <x:transform xml = "${xmltext}" xslt = "${xslt}"/>
   </body>
</html>

このJSPでは、<c:set>タグで書籍情報を含むXML文字列を変数 xmltext に格納し、<c:import>タグで外部の style.xsl を読み込んでいます。最後に <x:transform>タグがXMLとスタイルシートを組み合わせて変換を実行し、その結果がページに出力される仕組みです。

このコードを実行すると、次のような結果が表示されます。

Books Info

Padam History
ZARA
100
Great Mistry
NUHA
2000

なお、JSTLのXML関連タグをTomcatなどの環境で利用する場合は、必要なライブラリ(XercesImpl.jar、Xalan.jarなど)がクラスパスに配置されていることを確認しておきましょう。

  1. 【保存版】Microsoft Wordの5つの表示モード(ビュー)の使い分けと基本操作まとめ

    Microsoft Wordを使っている方の中には、「文書を読むための表示(ビュー)はいくつあるのだろう?」と疑問に思ったことはありませんか。実はWordには、文書の表示方法を切り替えられる複数のオプションが標準で用意されています。 ビューを切り替えると、文書のレイアウトや使える編集ツールが変化します。ただしWebレイアウトについては、印刷プレビューとほぼ同じツールセットを持ちながら、見た目がWebページのようになる点のみが異なります。 Wordのビューには、主に次の5種類があります。 印刷レイアウト表示(Print Layout View) 閲覧モード(Read Mode) Webレイアウ

  2. OneDriveで実現!WebサイトにWord文書を埋め込む方法を解説

    現代のインターネットの世界では、YouTubeの動画、SNSの投稿、Googleマップなど、あらゆるコンテンツがウェブページに埋め込まれています。では、文書そのものをWebページに埋め込むことはできるのでしょうか? Web開発者やブログ・サイト運営者の方なら、ぜひ知っておきたい便利なテクニックです。本記事では、OfficeおよびOffice 365のWord文書をWebサイトに埋め込む方法を詳しく解説します。 事前に準備するもの 文書を埋め込むには、OneDriveのアクティブなアカウントと、埋め込みたいWord文書が必要です。仕組みはGoogleドライブとよく似ています。Googleドライブ