- - PR -
算術演算子MODの使用方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-01-08 18:03
はじめまして。
やまとと申します。 1〜9までの数字を以下の様に表示させるXSLを作成しています。 123 456 789 XMLは以下の様になっています。(要点のみ抜き出し) <NO>1</NO> <NO>2</NO> <NO>3</NO> <NO>4</NO> <NO>5</NO> <NO>6</NO> <NO>7</NO> <NO>8</NO> <NO>9</NO> 以上のようなXMLで、3つ区切りに表示したいのです。 算術演算子MODで、行いたいのですが、構文が分かりません。 <xsl:value-of select="NO" /> <xsl:if test="NOを3で割った時の余りが0の場合"> <br /> </xsl:if> <xsl:apply-templates select="NO" />で、ループさせ、NOを表示しています。 条件式の部分を日本語で書いてしまいましたが、構文が分からないのはこの部分です。 申し訳ありませんが、ご教授お願い致します。 |
|
投稿日時: 2002-01-08 18:20
井上です。
<xsl:if test="NO mod 3 = '0'"> でいかがでしょう? ただ、NO 要素の値をそのまま使う方法だと、折り返すかどうかが NO 要素の値に 左右されてしまって具合が悪いので、<xsl:for-each> でループを回した上で、折 り返すかどうかの判断には position() 関数を使った方がいいかもしれませんね。 _________________ www.kojii.net |
|
投稿日時: 2002-01-08 18:57
やまとです。
井上さん。ありがとうございます。 参考にさせて頂きます。 また、質問になってしまうのですが、 position()を使用するとこの関数は使う事が出来ないというエラーが起きてしまいます。 参考書で調べてみましたが、XSLの2行目の【xmlns:xsl】を変更しなければ ならないような気がします。 現在は <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> が書き出しになっております。 自分でも調べてはみましたが、勉強不足の為、理解する事が出来ませんでした。 申し訳ありませんが、上記の件の対策等、ご教授して頂ければうれしく思います。 宜しくお願い致します。 |
|
投稿日時: 2002-01-08 19:28
井上です。
それはドラフト版 XSLT ですね。Windows 環境なら、MSXML3 をインストールすれば 勧告版 XSLT が使えるようになるので、そちらなら position() 関数が使えます。 そのとき、名前空間 URI が http://www.w3.org/1999/XSL/Transform (だったと思う) に変わるので、スタイルシートを忘れずに修正してください。 MSXML3 については、MSDN Online XML Developer Center を御覧ください。 URL : http://www.asia.microsoft.com/japan/developer/xml/ _________________ www.kojii.net |
|
投稿日時: 2002-01-09 10:41
やまとです。
井上さん。 度々、ご質問にお答え頂き有難う御座いました。 教えて頂いたURLを参考にMSXML3をインストールし、 スタイルシート修正後、再度実行してみたところ、 正常に動作する事が出来ました。 本当に有難う御座いました。 これからも宜しくお願い致します。 |
1