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 回答