<xsl:if>で条件に合った文字列だけを取り出す

・XML文書から条件に合った文字列だけを取り出す。
・属性値により条件処理する。

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

XMLソース

<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="if02.xsl"?>
<start>
  <top>条件に合った文字列を取り出す</top>
  <contents>
    <ken key="九州">・鹿児島県</ken>
    <ken key="九州">・熊本県</ken>
    <ken key="九州">・福岡県</ken>
    <ken key="中国" flg="best">・鳥取県</ken>
    <ken key="中国">・広島県</ken>
    <ken key="中国" flg="worst">・山口県</ken>
    <ken key="四国">・香川県</ken>
    <ken key="四国">・愛媛県</ken>
    <ken key="近畿">・兵庫県</ken>
    <ken key="近畿" flg="worst">・大阪府</ken>
    <ken key="近畿">・京都府</ken>
    <ken key="中部">・愛知県</ken>
    <ken key="中部">・静岡県</ken>
    <ken key="中部">・長野県</ken>
    <ken key="中部">・新潟県</ken>
    <ken key="関東" flg="worst">・東京都</ken>
    <ken key="関東">・栃木県</ken>
    <ken key="東北">・秋田県</ken>
  </contents>
  <end>以上です(00/11/16)</end>
</start>

XSLソース

<?xml version="1.0" encoding="Shift_Jis"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:template match="/">
    <H3><xsl:value-of select="start/top"/></H3>
    <xsl:apply-templates select="start/contents"/>
  </xsl:template>
 
  <xsl:template match="start/contents">
    <center>
    <H4>***に関する
      <xsl:for-each select="ken">
        <xsl:if test="@flg[.='best']">
  		ベスト県は<font color="red"><xsl:value-of /></font>です。
  	  </xsl:if>
  	</xsl:for-each>
    </H4>
    <H4>ワースト県は
      <xsl:for-each select="ken">
        <xsl:if test="@flg[.='worst']">
  		<font color="navy"><xsl:value-of /></font>
  	  </xsl:if>
  	</xsl:for-each>
      です。</H4>
    </center>
    近畿地方は
    <xsl:for-each select="ken">
       <xsl:if test="@key[.='近畿']">
  		<font color="green"><xsl:value-of /></font>
  	 </xsl:if>
    </xsl:for-each>
    です。
  </xsl:template>
</xsl:stylesheet>

end(00/11/16)