查询字符串值为xsl参数

时间:2012-09-04 17:01:50

标签: xslt query-string

无论如何,我可以获得querystring变量的值并使用xsl处理它。我尝试使用<xsl:param name="qsVariableName">,但没有成功,它没有破坏但是当我尝试输入它时,它给了我一个空值。

www.example.com?qsVariableName=true

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

1 个答案:

答案 0 :(得分: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:http://example.com/file.xml?qsVariableName=true转换XML文件,它将返回“qsVariableName = true”。