gpt4 book ai didi

java - 如何从java代码向XSLT传递参数

转载 作者:行者123 更新时间:2023-12-02 06:22:18 24 4
gpt4 key购买 nike

我想从 java 应用程序传递缩进属性的参数,如下所示。

我可以从 java 代码传递它,没有任何问题,但在 xslt 中定义参数是一个问题。我做了下面的示例:

<xsl:param select="'yes'">

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

但是当我像上面那样使用时,我收到错误消息,指出我定义属性缩进的方式无效。请帮我解决这个问题。

最佳答案

参数声明为<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 在线文档,以建议一种可能的方法来使用您的自定义进行序列化设置:

XOutputParameters params = yourXSLTExecutableInstance.getOutputParameters();
params.setIndent(true);

List<XItemView> result = yourXSLTExecutableInstance.executeToList(yourJAXPInputSource);
result.get(0).exportItem(yourJAXPStreamResult, params);

这大概是我会尝试的,我没有任何访问 API 的权限来测试。

关于java - 如何从java代码向XSLT传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20907564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com