【问题标题】:XSL Transformation in Java with parameters带有参数的 Java 中的 XSL 转换
【发布时间】:2009-11-03 13:54:50
【问题描述】:

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

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

但是,在第 2 行抛出异常 - 变量或参数“变量名”未定义。我意识到 XSL 已编译,并且可能在创建转换器时编译。

那么,我如何将参数传递给我的转换? setParameter 方法应该如何使用?

【问题讨论】:

  • 仔细检查以确保您正确拼写了 parameterName 并且 cAsE 与 XSLT 中声明的内容相匹配。

标签: java xslt


【解决方案1】:

如果你传递一个类似的参数:

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" />

【讨论】:

  • 很好,仅供参考,如果参数在 xsl 中有任何值,它将被忽略,Java 发送的值将优先
【解决方案2】:

rsp 的回答很到位。谢谢。 只是想补充一点,您不能以相同的方式将参数传递给变量(我正在通过 Java 的 TransformerFactory 设置参数)。

我错误地认为变量和参数是可以互换的 :)

【讨论】:

猜你喜欢
  • 2013-05-09
  • 2013-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
相关资源
最近更新 更多