• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:xslでの最小値、最大値の取得)

xslで最小値と最大値を取得する方法

このQ&Aのポイント
  • xslを使用してXMLデータから最小値と最大値を取得する方法について教えてください。
  • 例えば、与えられたXMLデータに含まれる要素の中から最小値と最大値を表示する方法を教えてください。
  • xslの関数や処理を使用して、XMLデータ内の要素から最小値と最大値を抽出する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • jo-ji
  • ベストアンサー率72% (26/36)
回答No.1

まず、ソートする時にはB要素で繰り返さなくてはなりませんよね。 <xsl:template match="A">  <table border="1">   <xsl:for-each select="B">    <xsl:sort select="." data-type="number"/>    <tr>     <td><xsl:value-of select="position()"/></td>     <td><xsl:value-of select="."/></td>    </tr>   </xsl:for-each>  </table> </xsl:template> このようにすると昇順で表示されます (この例の場合は数字としてソートした方が自然なので、 data-type="number"を指定しました) 一応、HTMLでの出力を想定しています。 昇順にする方法が分かっていれば、最小値最大値を取得するのも容易です。 昇順に並んでいるのですから、その1番目の要素に最小値が、 その最後の要素に最大値が、それぞれ入っていることになります。 それを条件指定で取り出せば良いと思います。 <xsl:template match="A">  <table border="1">   <xsl:for-each select="B">    <xsl:sort select="." data-type="number"/>    <xsl:if test="position() = 1">     <tr><td>min</td><td><xsl:value-of select="."/></td></tr>    </xsl:if>    <xsl:if test="position() = last()">     <tr><td>max</td><td><xsl:value-of select="."/></td></tr>    </xsl:if>   </xsl:for-each>  </table> </xsl:template> 実際はたぶんもっと複雑な事例だとは思いますが、 ここから工夫してみて下さい。

関連するQ&A