如何从java代码向XSLT传递参数
我想从java应用程序中为indent属性传递参数,如下所示
我可以从java代码中传递它,没有任何问题,但是在xslt中定义参数是一个问题。 我做了以下示例:
<xsl:param select="'yes'">
<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes" indent="{$indent}" />
但是当我像上面那样使用时,我得到的错误是我定义属性缩进的方式无效。请帮我解决这个问题
# 1 楼答案
带有
<xsl:param name="indent" select="'yes'"/>
的参数声明是正确的,但并非所有元素的所有属性都允许使用属性值模板。如果我们看一下http://www.w3.org/TR/xslt20/#serialization,我们会发现这些属性不允许使用属性值模板,否则语法会说,例如indent={yes|no}
如果您想在Java代码中定义缩进,然后检查XSLT处理器的API,它可能有一个设置输出序列化设置的方法
根据您的评论,您使用的是IBM的Websphere XSLT 2.0 API,我没有使用该API的经验,因此下面尝试阅读API在线文档,以建议使用自定义设置序列化的可能方法:
这大概就是我要尝试的,我没有任何访问API进行测试的权限