xsl转换

ibrsph3r  于 2021-07-05  发布在  Java
关注(0)|答案(2)|浏览(630)

我有一个xsl文件,需要使用来自外部源的参数。我使用的是java,代码如下所示:

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer xsltTransformer = transformerFactory.newTransformer(xsltSource);
xsltTransformer.setParameter(parameterName, parameterValue);

但是,在第2行引发异常-变量或参数“variable\u name”未定义。我意识到xsl是编译的,可能是在创建转换器时编译的。
那么,如何将参数传递给变换呢?setparameter方法应该如何使用?

4ioopgfo

4ioopgfo1#

rsp的回答很准确。谢谢。只是想补充一点,您不能以相同的方式将参数传递给变量(我通过java的transformerfactory设置参数)。
我错误地认为变量和参数是可以互换的:)

u5rb5r59

u5rb5r592#

如果传递如下参数:

transformer.setParameter("render_id", "1234");

可以通过变换提取参数:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes"/>

<!-- Receives the id of the menu being rendered. -->
<xsl:param name="render_id" />

相关问题