2012-09-04 183 views
2

有无论如何我可以得到查询字符串变量的值并使用xsl处理它。我试着用<xsl:param name="qsVariableName">,但没有成功,它没有中断,但当我尝试像这样输入时,它给了我一个空值。查询字符串值为xsl参数

www.example.com?qsVariableName=true从源XML文件或XSLT

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

XSLT究竟是如何调用的?它使用Javascript吗?代码的那部分是什么样的? – Dan

+0

我认为这是客户端转型? –

回答

1

查询字符串参数不会自动映射设置<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 =真”。

+0

在XSLT 1.0中如何? – YogaPanda