Hitachi

Cosminexus V11 アプリケーションサーバ Cosminexus XML Processor ユーザーズガイド


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>&#160;</TD><TD>&#160;</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>