内容(XML文書)と表示(XSLT)を分離するメリットの一つは複数のXML文書を同じ外見で表示できること。
下のサンプルは異なる日付の東証情報を同じ外見で表示している。
[サンプルXML文書1を表示(2003年6月27日の東証株式第一部情報)](下のフレームに)
[サンプルXML文書2を表示(2003年9月01日の東証株式第一部情報)](下のフレームに)
[サンプルXML文書3を表示(2003年11月05日の東証株式第一部情報)](下のフレームに)
XMLソース(2003年6月27日)
<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="xml02.xsl"?>
<root>
<title>2003年6月27日の東証株式第一部情報</title>
<info><name>銘柄</name><end>終値(円)</end><total>出来高(千株)</total></info>
<data>
<kabu><name code="6752">松下</name><end>1170</end><total>6795</total></kabu>
<kabu><name code="6753">シャープ</name><end>1526</end><total>4897</total></kabu>
<kabu><name code="6758">ソニー</name><end>3340</end><total>4238</total></kabu> <kabu><name code="6501">日立</name><end>497</end><total>21784</total></kabu>
<kabu><name code="6502">東芝</name><end>394</end><total>26392</total></kabu>
<kabu><name code="6701">NEC</name><end>558</end><total>18952</total></kabu>
<kabu><name code="6702">富士通</name><end>462</end><total>20916</total></kabu> </data>
<end>以上です(2003/12/8)</end>
</root>
XMLソース(2003年9月01日)
<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="***01.xsl"?>
<root>
<title>2003年9月01日の東証株式第一部情報</title>
<info><name>銘柄</name><end>終値(円)</end><total>出来高(千株)</total></info>
<data>
<kabu><name code="6752">松下</name><end>1508</end><total>10034</total></kabu>
<kabu><name code="6753">シャープ</name><end>1800</end><total>4731</total></kabu>
<kabu><name code="6758">ソニー</name><end>3890</end><total>3192</total></kabu> <kabu><name code="6501">日立</name><end>655</end><total>19855</total></kabu>
<kabu><name code="6502">東芝</name><end>497</end><total>28105</total></kabu>
<kabu><name code="6701">NEC</name><end>928</end><total>39143</total></kabu>
<kabu><name code="6702">富士通</name><end>592</end><total>28880</total></kabu> </data>
<end>以上です(2003/12/8)</end>
</root>
XMLソース(2003年11月05日)
<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="***01.xsl"?>
<root>
<title>2003年11月05日の東証株式第一部情報</title>
<info><name>銘柄</name><end>終値(円)</end><total>出来高(千株)</total></info>
<data>
<kabu><name code="6752">松下</name><end>1529</end><total>12302</total></kabu>
<kabu><name code="6753">シャープ</name><end>1786</end><total>3964</total></kabu>
<kabu><name code="6758">ソニー</name><end>4030</end><total>8220</total></kabu> <kabu><name code="6764">三洋</name><end>516</end><total>7551</total></kabu>
<kabu><name code="6501">日立</name><end>692</end><total>21896</total></kabu>
<kabu><name code="6502">東芝</name><end>440</end><total>17832</total></kabu>
<kabu><name code="6701">NEC</name><end>1027</end><total>19229</total></kabu>
<kabu><name code="6702">富士通</name><end>708</end><total>16634</total></kabu> </data>
<end>以上です(2003/12/2)</end>
</root>
XSLソース
<?xml version="1.0" encoding="Shift_Jis"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS"/>
<xsl:template match="/">
<H4><xsl:value-of select="root/title"/></H4>
<xsl:apply-templates select="root"/>
</xsl:template>
<xsl:template match="root">
<table border="1" style="margin-left:1cm;margin-top:-4mm;border:2px solid red">
<tr style="color:blue">
<td>コード番号</td>
<td><xsl:value-of select="info/name"/></td>
<td><xsl:value-of select="info/end"/></td>
<td><xsl:value-of select="info/total"/></td>
</tr>
<xsl:for-each select="data/kabu">
<tr>
<td><xsl:value-of select="name/@code"/></td>
<th style="color:green"><xsl:value-of select="name"/></th>
<td style="text-align:right"><xsl:value-of select="end"/></td>
<td style="text-align:right"><xsl:value-of select="total"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
end(03/12/8)