表の作成 3

<xsl:element>で<table>,<tr>,<td>要素を生成し、<xsl:attribute>で属性を生成する例。

[サンプルXML文書を表示](下のフレームに)

XMLソース

<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="table01.xsl"?>
<start>
  <top>パリーグ勝敗表(200/10/15現在)</top>
  <entry>
    <item>順位</item>
    <item>球団名</item>
    <item>勝数</item>
    <item>負数</item>
    <item>勝率</item>
  </entry>
  <team>
    <rank>1位</rank>
    <name>ダイエー</name>
    <win>73</win>
    <loss>60</loss>
    <rate>.549</rate>
  </team>
  
<!--  途中省略   -->

  <team>
    <rank>6位</rank>
    <name>近鉄</name>
    <win>58</win>
    <loss>75</loss>
    <rate>.436</rate>
  </team>
  <end>以上です(01/1/15)</end>
</start>

XSLソース

<?xml version="1.0" encoding="Shift_Jis"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:template match="/">
    <center><H3><xsl:value-of select="start/top"/></H3></center>
    <xsl:apply-templates select="start"/>
  </xsl:template>
  
  <xsl:template match="start">
    <xsl:element name="table">
     <xsl:attribute name="align">center</xsl:attribute>
     <xsl:attribute name="border">4</xsl:attribute>
     <xsl:attribute name="bordercolor">red</xsl:attribute>
     <xsl:element name="tr">
       <xsl:for-each select="entry/item">
         <xsl:element name="td">
           <xsl:value-of />
         </xsl:element>
       </xsl:for-each>
     </xsl:element>
     
     <xsl:for-each select="team">
       <xsl:element name="tr">
         <xsl:element name="td"><xsl:value-of select="rank"/></xsl:element>
         <xsl:element name="td"><xsl:value-of select="name"/></xsl:element>
         <xsl:element name="td"><xsl:value-of select="win"/></xsl:element>
         <xsl:element name="td"><xsl:value-of select="loss"/></xsl:element>
         <xsl:element name="td"><xsl:value-of select="rate"/></xsl:element>
       </xsl:element>
     </xsl:for-each>
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>

end(01/1/15)