2

とにかく、クエリ文字列変数の値を取得して xsl で操作できる方法はありますか。で試しまし<xsl:param name="qsVariableName">たが、成功しませんでした。壊れませんが、このように入力しようとすると空の値が返されます。

www.example.com?qsVariableName=true

 <xsl:param name="qsVariableName" />
 <xsl:value-of select="$qsVariableName"></xsl:value-of>
4

1 に答える 1

1

ソース XML ファイルまたは XSLT のクエリ文字列パラメーターは<xsl:param>、スタイルシートに設定するために自動的にマップされません。

変換が呼び出されるときに明示的に設定する<xsl:param>必要があります。環境と呼び出し方法に応じて、パラメーターを設定するためのさまざまな構文があります。

Java では、次のようにパラメーターを設定します。

javax.xml.transform.Transformer trans =
        transFact.newTransformer(xsltSource);
trans.setParameter("qsVariableName", "true");

XSLT 2.0 では、このdocument-uri()関数を使用してソース XML ファイルの URL を取得し、その値を解析してクエリ文字列パラメーターと値のシーケンスを取得できました。

tokenize(substring-after(document-uri(/), '?'), '&amp;')

たとえば、上記のコードで URL を使用して XML ファイルを変換すると、http://example.com/file.xml?qsVariableName=true「qsVariableName=true」が返されます。

于 2012-09-08T01:15:23.643 に答える