サンプルプログラムが読み込むXSLファイルを次に示します。
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" indent="yes" encoding="Shift_JIS"/>
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<!-- STARTをルートとして変換を開始する -->
<xsl:template match="START">
<HTML>
<HEAD>
<TITLE>XMLをHTMLのテーブルで表示する</TITLE>
</HEAD>
<BODY BGCOLOR="#C0C0C0">
<FONT SIZE="5">発注伝票</FONT>
<TABLE BORDER="2">
<TR><TH>商品名</TH><TH>単価</TH>
<TH>数量</TH><TH>小計</TH></TR>
<xsl:apply-templates />
<TR><TH>合計</TH><TD> </TD><TD> </TD>
<TD ALIGN="RIGHT"><xsl:value-of
select="(//商品[1]/単価 * //商品[1]/数量 +
//商品[2]/単価 * //商品[2]/数量 +
//商品[3]/単価 * //商品[3]/数量)" /></TD></TR>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="伝票">
<xsl:apply-templates />
</xsl:template>
<!-- 1商品で1行を作成するし,最後に小計を出力する -->
<xsl:template match="商品">
<TR><xsl:apply-templates />
<TD ALIGN="RIGHT">
<xsl:value-of select="number(単価)*number(数量)" />
</TD></TR>
</xsl:template>
<!-- 商品名を出力する -->
<xsl:template match="商品名">
<TD><xsl:value-of select="."/></TD>
</xsl:template>
<!-- 単価を出力する -->
<xsl:template match="単価">
<TD ALIGN="RIGHT"><xsl:value-of select="."/></TD>
</xsl:template>
<!-- 数量を出力する -->
<xsl:template match="数量">
<TD ALIGN="RIGHT"><xsl:value-of select="."/></TD>
</xsl:template>
</xsl:stylesheet>