XML:XSL:XSLT:変数(variable)の取扱い
XML (18 items)
2005年06月16日
まず、XSLTの変数(variable)については、
>XML:XSL:XSLT:変数(variable)に値を代入するには
で書いた通り、所謂、定数的にしか取り扱う事が出来ない。
つまり、1回しか値が代入できないともいえるが、、
>XML:XSL:XSLT:変数(variable)に値を代入するには
で書いた通り、所謂、定数的にしか取り扱う事が出来ない。
つまり、1回しか値が代入できないともいえるが、、
だからといって、下記のようなコーディングはできない。
1回しか値が代入できないというのであれば、
場合分けして値を代入すればいいと勘違いしがちであるが、
このようなロジックは構文エラーとなる。
普通、プログラム言語では2回変数を宣言できないのは当たり前であるが、
上記から、それはXSLTにも当てはまるといえる。
XSLTでは、基本的に変数を使った動的なプログラミングができないと言っていい。
上記のように後続の処理で変数「a」を使い、その値によって処理を変えたい場合は、
変数「a」・「b」を用意して処理するなどの考慮も必要になる。
■例:
testノードの値が'1'であれば、変数「a」に'1'を代入、
'1'以外であれば、'2'を代入。
<xsl:choose>
<xsl:when test="./test = '1'">
<xsl:variable name="a" select="'1'"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="a" select="'2'"/>
</xsl:otherwise>
</xsl:choose>
・
・
・
1回しか値が代入できないというのであれば、
場合分けして値を代入すればいいと勘違いしがちであるが、
このようなロジックは構文エラーとなる。
普通、プログラム言語では2回変数を宣言できないのは当たり前であるが、
上記から、それはXSLTにも当てはまるといえる。
XSLTでは、基本的に変数を使った動的なプログラミングができないと言っていい。
上記のように後続の処理で変数「a」を使い、その値によって処理を変えたい場合は、
変数「a」・「b」を用意して処理するなどの考慮も必要になる。
前の記事 次の記事
