JavaでHello World
Google
  HOME  |  基礎  |  掲示板  |  ツール |  書籍  |  デザインパターン  |  リンク  |  フィードバック
JavaでHello World > XSLT編  
メニュー
Home
情報交換掲示板
ツールの部屋
Java関連の書籍
アプリケーション編
Swing編
Swing(イベント)編
Swing(Look&Feel)編
アプレット編
iアプリ編
サーブレット編
サーブレット(Linux)編
サーブレット(web.xml)編
サーブレット(セッション)編
サーブレット(クッキー)編
サーブレット(フィルタ)編
JSP編
JSP(ディレクティブ)編
JSP(アクション)編
JSP(スクリプト)編
JSP(オブジェクト)編
JSP(カスタムタグ)編
JSP(データベース)編
Apache + Tomcat編
Struts編
JDBC編
JDBC(データソース)編
JDBC(MySQL)編
JDBC(PostgreSQL)編
JDBC(トランザクション)編
JavaMail(SMTP)編
JavaMail(POP)編
JNI編
RMI編
RMI(アプレット)編
CORBA編
JNDI編
EJB編
EJB(Entity Bean)編
JMS(PTP)編
JMS(Pub/Sub)編
XML(SAX)編
XML(DOM)編
XSLT編
SOAP編
国際化編
国際化(タイムゾーン)編
国際化(通貨)編
リフレクション編
コレクション編
コレクション(Set)編
コレクション(List)編
コレクション(Map)編
スレッド編
正規表現編
アサーション編
ログ機能編
サウンド編
ファイル入出力編
URL編
ソケット編
データグラム編
HTTP
FTP編
jar編
javadoc編
Ant編
外部コマンド編
プロパティファイル編
システムプロパティ編
Eclipse編
  2002/02/03  田中宏和
Last Update 2002/12/08
XSLT編
◆XSLTとは?
XSLTXSL Transformationsの略です。(XSLExtensible Stylesheet Languageの略)XSLTXSLから文書の変換機能を抜き出したもので、XML文書を他のXML文書やHTML文書に変換することができます。
◆XSLTの流れ
◆ここでの環境
OS Windows 2000
J2SE SDK 1.3.1_01
◆Java実行環境の構築
アプリケーション編を参考にしてJava実行環境を構築してください。
◆XSLTのAPIのライブラリをCLASSPATHに追加(J2SE SDK 1.3以下の場合)

J2SE SDKのバージョンが1.3以下の場合、XSLTのAPIを使用可能にしなければなりません。1.4以上の場合はJ2SE SDKにXSLTのAPIが含まれているので追加する必要はありません。ここでは、JAXP(Java API for XML Processing)を使用します。JAXPはJava XML Packに入っています。
Java XML Packのダウンロード → Java XML Pack
ダウンロードしましたら解凍したフォルダに入っているxalan.jar、jaxp-api.jar、dom.jar、sax.jar、xercesImpl.jarをCLASSPATHに追加してください。追加方法はアプリケーション編を参考にしてください。

◆XML文書とXSLTスタイルシートの用意
■XML文書の作成
XML文書を作成します。
helloworldxslt.xml(ここからダウンロード)

<?xml version="1.0" encoding="Shift_JIS" ?>

<data>

<item>
<no>1</no>
<lang>日本語</lang>
<message>こんにちわ 世界</message>
</item>

<item>
<no>2</no>
<lang>英語</lang>
<message>Hello World</message>
</item>

</data>

■XSLTスタイルシートの作成
変換方法を記述してあるXSLTスタイルシートを作成します。
helloworldxslt.xsl(ここからダウンロード)
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">


<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>XSLTでHello World</h1>
<table border="1">
<tr>
<td>NO</td>
<td>言語</td>
<td>メッセージ</td>
</tr>

<xsl:for-each select="data/item">
<tr>
<td><xsl:value-of select="no"/></td>
<td><xsl:value-of select="lang"/></td>
<td><xsl:value-of select="message"/></td>
</tr>
</xsl:for-each>

</table>
</body>
</html>

</xsl:template>
</xsl:stylesheet>
 
 
◆変換を行うJavaのプログラムの作成
変換を行うJavaのプログラムを作ります。以下がそのコードです。
HelloWorldXSLT.java(ここからダウンロード)
import javax.xml.transform.*;
import javax.xml.transform.stream.*;

public class HelloWorldXSLT {
  public static void main( String[] args) {
    try {
      // TransformerFactoryインスタンスを取得
      TransformerFactory factory = TransformerFactory.newInstance();
      // XSLファイルからtranceformerを取得
      Transformer transformer = 
        factory.newTransformer(new StreamSource("helloworldxslt.xsl"));
      // 出力するエンコーディングを設定
      transformer.setOutputProperty("encoding","Shift_JIS");
      // XMLファイルをXSLTで変換して出力
      transformer.transform(new StreamSource( "helloworldxslt.xml"), 
                            new StreamResult(System.out));
    } catch(Exception e) {
      e.printStackTrace();
    }
  }
}
 
◆コンパイル
コマンドプロンプト

C:\JavaHello\XSLT>javac HelloWorldXSLT.java

C:\JavaHello\XSLT>

◆実行
コマンドプロンプト

C:\JavaHello\XSLT>java HelloWorldXSLT
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>Hello World</title>
</head>
<body>
<h1>XSLTでHello World</h1>
<table border="1">
<tr>
<td>NO</td><td>言語</td><td>メッセージ</td>
</tr>
<tr>
<td>1</td><td>日本語</td><td>こんにちわ 世界</td>
</tr>
<tr>
<td>2</td><td>英語</td><td>Hello World</td>
</tr>
</table>
</body>
</html>

C:\JavaHello\XSLT>

おおおお!!HTMLに変換されて表示されましたね!これでは少し見えにくいのでブラウザで見てみたいですね。サーブレットを使って表示してみましょう!
 
◆Tomcatを使用可能にする
サーブレット編を参考にしてTomcatを使用可能にしてください。
◆サーブレットを使用しての表示
以下がXMLファイルをXSLTスタイルシートで変換した結果を表示するコードです。
HelloWorldXSLTServlet.java(ここからダウンロード)
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;

public class HelloWorldXSLTServlet extends HttpServlet {
  public void service(HttpServletRequest request, 
                      HttpServletResponse response) 
                        throws ServletException, IOException {
    
    response.setContentType("text/html; charset=Shift_JIS");
    PrintWriter out = response.getWriter();
    try {
      String xslpath = "file:///C:\\JavaHello\\XSLT\\helloworldxslt.xsl";
      String xmlpath = "file:///C:\\JavaHello\\XSLT\\helloworldxslt.xml";
      
      // TransformerFactoryインスタンスを取得
      TransformerFactory factory = TransformerFactory.newInstance();
      // XSLファイルからtranceformerを取得
      Transformer transformer = 
        factory.newTransformer(new StreamSource(xslpath));
      // 出力するエンコーディングを設定
      transformer.setOutputProperty("encoding","Shift_JIS");
      // XMLファイルをXSLTで変換して出力
      transformer.transform(new StreamSource(xmlpath), 
                            new StreamResult(out));
    } catch(Exception e) {
      e.printStackTrace();
    }
  } 
}
 
◆コンパイル
コマンドプロンプト

C:\JavaHello\XSLT>javac HelloWorldXSLTServlet.java

C:\JavaHello\XSLT>

コンパイルができましたら、生成したクラスファイルをTomcatのフォルダの下のwebapps\examples\WEB-INF\classesの下にコピーしてください。
 これで準備ができましたので、Tomcatを起動して以下のURLを指定して見てみましょう!
http://localhost:8080/examples/servlet/HelloWorldXSLTServlet
おおおお!!表示されましたね!
 
■書籍
Java関連の書籍
XML関連の書籍

 
  ネットで買えば断然お得!お買い物なら楽天市場
ツールの部屋 - Java関連の書籍 - デザインパターン - 情報交換掲示板 - HOME