<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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XSLTで固定長データファイルを...
-
■XSLT■固定文字を使ったループ...
-
xsl:sortを子要素で
-
IEのmsxmlでxmlをcsvに変換
-
空かスペースを認識させること...
-
10番目以降の処理を変える
-
xslでの最小値、最大値の取得
-
何故か子の要素に xmlns=
-
xslでの表示
-
XMLから指定テキストのみを抜き...
-
自動的にリンクを貼る・・・
-
CPUの考え方を教えてください ...
-
SNMP リンクダウンとノードダ...
-
ルート要素ノードが2個ある場合?
-
XPathで途中に名前空間が設定さ...
-
ASP.NETでツリービューを作成し...
-
VBでXMLファイルを作ると xmlns...
-
特殊記号が勝手にエスケープさ...
-
XMLで要素が記述された順番に意...
-
下から○番目のデータを表示は可...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
xmlのテキストにリンクを張りた...
-
XSLTで固定長データファイルを...
-
タグの有無の判定
-
XSLで、XMLの空タグを制御したい。
-
XMLのHTMLへの変換 (初心者)
-
xmlの複数条件で検索
-
XSLでXMLデータをタブ区切りデ...
-
スタイルシートを使用したXM...
-
XSL内でJavaScriptを記述し、Ja...
-
XSL中の改行、タブを無効にした...
-
XSLTにてタグ名を取得する方法
-
XML/XSLについて質問です
-
重複するものを消したい
-
xmlの属性が重複しているのをx...
-
XMLの名前空間をXSLから指定す...
-
XSLで特定のタグだけを出力する...
-
XSLTを使用したXML->XML変換で...
-
うまく表示されない
-
XMLから指定テキストのみを抜き...
-
XMLをXSLTやCSSに変換してHTML...
おすすめ情報