XMLってなぁに? 初級編 第3回
2005/01/26
この文書は執筆時点(2004/後半)での知識を基にしており、現状とあっていない可能性があります。
第3回
XSLやXSLTとはeXtensible Stylesheet Languageと言ってXMLを好きな形に整形することである。
一般的にXML->HTML, XML->XML, XML->Textという3形式がある。
#XSL-FOなんていう双子もいる
一番最初はXML->HTMLから説明しよう。
<?xml version="1.0" encoding="utf-8"?>
<商品一覧>
<商品>
<品名>CDRメディア</品名>
<値段>2000</値段>
</商品>
<商品>
<品名>DVDメディア</品名>
<値段>5000</値段>
</商品>
<商品>
<品名>FDメディア</品名>
<値段>1000</値段>
</商品>
</商品一覧>
以前使ったこのXMLを
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="a.xsl"?>
<商品一覧>
<商品>
<品名>CDRメディア</品名>
<値段>2000</値段>
</商品>
<商品>
<品名>DVDメディア</品名>
<値段>5000</値段>
</商品>
<商品>
<品名>FDメディア</品名>
<値段>1000</値段>
</商品>
</商品一覧>
このように
<?xml-stylesheet type="text/xsl" href="a.xsl"?>
という行を追加してほしい。
さらに、a.xslというXSLファイルを以下のように
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<head>
<title>TITLE</title>
</head>
<body>
ヘッダ
<xsl:apply-templates />
フッタ
</body>
</html>
</xsl:template>
<xsl:template match="商品一覧">
<table border="1">
<tbody>
<xsl:apply-templates />
</tbody>
</table>
</xsl:template>
<xsl:template match="商品">
<tr><xsl:apply-templates /></tr>
</xsl:template>
<xsl:template match="品名">
<td><xsl:apply-templates /></td>
</xsl:template>
<xsl:template match="値段">
<td><xsl:apply-templates /></td>
</xsl:template>
</xsl:stylesheet>
用意した上でXMLファイルを開いてみてほしい。