|
| |
2002/02/03 田中宏和 |
| Last Update
2002/12/08 |
|
 |
XSLT編 |
 |
◆XSLTとは? |
| XSLTはXSL Transformationsの略です。(XSLはExtensible
Stylesheet Languageの略)XSLTはXSLから文書の変換機能を抜き出したもので、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 |