mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Linux - XML に XSLT を適用して HTML 生成!

[ pc_tips ] [ Linux, XML ]

こんばんは。

以前、 Ruby で XML ファイルに XSL テンプレートを適用して HTML を生成する方法を紹介しました。

ただ、 Linux ディストリビューションによってはデフォルトで XML に XSL テンプレートを適用するコマンドがインストールされています。
わざわざ Ruby を使用しなくてもよいということです。

以下、その使用方法についての備忘録です。

0. 前提条件

  • Linux Mint 17.2(64bit) での作業を想定。
  • XML に XSL テンプレート適用して HTML ファイルを生成するのに xsltproc コマンドを使用する。

1. xsltproc コマンドのインストール

xsltproc コマンドが未インストールならインストールしておく。

1
$ sudo apt-get install xsltproc

2. XML ファイルの準備

試験的に使用する XML ファイルを以下のように作成する。(あくまで一例)

test.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>

<Office>
  <People>
    <Person>
      <No>1234</No>
      <Name>Ruby 太郎</Name>
      <Birthday>1980-01-01</Birthday>
      <Age>33</Age>
    </Person>
    <Person>
      <No>2345</No>
      <Name>XML 二郎</Name>
      <Birthday>1985-04-15</Birthday>
      <Age>28</Age>
    </Person>
    <Person>
      <No>3456</No>
      <Name>XSL 花子</Name>
      <Birthday>1990-09-30</Birthday>
      <Age>23</Age>
    </Person>
  </People>
</Office>

3. XSL テンプレートファイルの準備

試験的に使用する XSL テンプレートファイルを以下のように作成する。(あくまで一例)

test.xsl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <xsl:output method="html" encoding="UTF-8"/>

  <xsl:template match="/">
    <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="Office">
    <html lang="ja">
    <body>
    <xsl:apply-templates/>
    </body>
    </html>
  </xsl:template>

  <xsl:template match="People">
    <table>
    <xsl:apply-templates/>
    </table>
  </xsl:template>

  <xsl:template match="Person">
    <tr>
      <td><xsl:value-of select="No"/></td>
      <td><xsl:value-of select="Name"/></td>
      <td><xsl:value-of select="Birthday"/></td>
    </tr>
  </xsl:template>
</xsl:stylesheet>

4. HTML ファイルの生成

準備しておいた XML ファイルに XSL テンプレートを適用して HTML ファイルを生成する。

1
$ xsltproc --output test.html test.xsl test.xml

※オプションは他にも多数あるので、 xsltproc --helpman xsltproc で確認する。

5. HTML ファイルの確認

“test.html” というファイルが作成されているはずなので、確認してみる。

test.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html lang="ja"><body>
  <table>
    <tr>
<td>1234</td>
<td>Ruby 太郎</td>
<td>1980-01-01</td>
</tr>
    <tr>
<td>2345</td>
<td>XML 二郎</td>
<td>1985-04-15</td>
</tr>
    <tr>
<td>3456</td>
<td>XSL 花子</td>
<td>1990-09-30</td>
</tr>
  </table>
</body></html>

さらに、この HTML ファイルをブラウザで開いて確認してみる。

XSLTPROC


単に XML ファイルに XSL テンプレートを適用して HTML ファイルを作成するだけなら、今回の方法が楽でいいかもしれませんね。

以上。

Comments