5.7.4 使用するXSLファイル(SampleXSLT.xsl)
サンプルプログラムが読み込む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>