- PR -

XSLTへの引数とif文内での利用

1
投稿者投稿内容
あほあほまん
会議室デビュー日: 2002/08/23
投稿数: 3
投稿日時: 2002-08-23 09:39
XLTへ下記の例のようにparamとして引数を渡し、sort文の中の
selectのパラメータとして利用したいのですが、上手くいきません。

<xsl:param name="SortKey" />

<xsl:for-each select="Books">
<xsl:sort select="$SortKey" data-type="text" order="ascending" />


String($SortKey)等の記述にしても駄目でした。
ちなみに、sort文の前に<xsl:value-of select="$SortKey" />という記述を
入れると、予想される値が出力されたので、引数は的確に渡されているようです。

もしかすると、sort文の中では変数やパラメータは利用できないのでしょうか?
ちなみに、環境はVB .NETでXslTransformクラスでスタイルシートを読み込み、XsltArgumentListクラスで引数を渡しています。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2002-08-23 18:30
短い答え
変数で渡されたものは、
XPath式評価され文字列値がselectの結果になります
文字列のままです,

文字列定数中の変数が文字列展開されて、XPath評価されるのではない
$SortKey が解析され、変数に結合、それが評価されて、結果は文字列
さらに 「XPath式として評価され node-set に」はなりません。

select="*[name()=$SortKey]"

[ メッセージ編集済み 編集者: MMX 編集日時 2002-08-23 23:52 ]
あほあほまん
会議室デビュー日: 2002/08/23
投稿数: 3
投稿日時: 2002-08-26 18:07
返答が遅くなり申し訳ございませんでした。
上記方法で思うように動作しました、誠に有難うございます。

土日に、本屋で「XSLTバイブル」という本を読んでみたところ、
私の試していた方法が悪い例の見本として載っていました(汗)

それでは、またよろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)