无论如何,我可以获得querystring变量的值并使用xsl处理它。我尝试使用<xsl:param name="qsVariableName">
,但没有成功,它没有破坏但是当我尝试输入它时,它给了我一个空值。
www.example.com?qsVariableName=true
<xsl:param name="qsVariableName" />
<xsl:value-of select="$qsVariableName"></xsl:value-of>
答案 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(/), '?'), '&')
例如,使用上面的代码,如果您使用url:http://example.com/file.xml?qsVariableName=true
转换XML文件,它将返回“qsVariableName = true”。