<A>
<B>50</B>
<B>20</B>
<B>5</B>
<B>60</B>
<B>100</B>
</A>
例えば上のようなXMLがあったとします。
それにxslを適用したときに、最小値と最大値のみを表示させたいのですが、xslではどのような処理をすればよいのでしょうか?
<xsl:for-each select="A">
<xsl:sort select="./B"/>
<xsl:value-of select="."/>
</xsl:for-each>
上のようだと全ての<B>が昇順に表示されるだけです。
何か最小値、最大値を取得する関数等ありますでしょうか?
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) エクセルのVBAにショートカットキーの割り当て 3 2022/07/13 14:19
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- HTML・CSS VS.NETのコードを色合いも含めてHtmlに貼り付けたい。 1 2023/02/02 14:15
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
タグの有無の判定
-
重複するものを消したい
-
XMLのスタイルシートで単独タグ...
-
xsl:param要素をxsl:templateの...
-
xml→htmlへの変換&ページ分割...
-
XSLスタイルシートを2つ当てる...
-
昔Winnyってありましたけど、あ...
-
東芝のDynabookなのですがアン...
-
Dreamweaver CS3 : シングルク...
-
XML、XSLTの適応エラー(IEから...
-
XMLで要素が記述された順番に意...
-
CPUの考え方を教えてください ...
-
SNMP リンクダウンとノードダ...
-
C#初心者です。HtmlAgilityPack...
-
C#で使用中のファイルに別のフ...
-
isnan・isnf関数が「識別子が見...
-
アメブロ rss 読み込み
-
木のなぞり順をかえるプログラ...
-
DTDと名前空間
-
グラフ色塗り問題のプログラミ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XMLのHTMLへの変換 (初心者)
-
XSLで、XMLの空タグを制御したい。
-
タグの有無の判定
-
htmlに変換されない
-
スタイルシートを使用したXM...
-
xslでの最小値、最大値の取得
-
ノードの並び替え
-
VBAからxml・スタイルシートを...
-
XSL内でJavaScriptを記述し、Ja...
-
xmlのテキストにリンクを張りた...
-
重複するものを消したい
-
<xsl:key>とtopreceding-siblin...
-
XSL中の改行、タブを無効にした...
-
スタイルシートについて
-
XMLをXSLを使いHTMLに変換した...
-
XSLTで直下のテキストのみ取得...
-
XSLTにてタグ名を取得する方法
-
xsl:variable の使用方法
-
東芝のDynabookなのですがアン...
-
CPUの考え方を教えてください ...
おすすめ情報