XSLT / Xalan:从 Java 扩展中调用 apply-templates

发布于 2024-08-14 09:47:01 字数 798 浏览 6 评论 0原文

我正在使用 Xalan 和 Java 来扩展样式表。

(与我在那里做的事情类似的例子: 字典示例

我很难让我的标签执行。我希望这样:

<xsl:template match="sometag">
    <my-java:tag>
        <xsl:apply-tempates/>
    </my-java:tag>
</xsl:template>

我的 java 类包含方法 tag(XSLProcessorContext context, ElemExtensionCall elem) 构建一个元素 myElem 馈入上下文,如下所示:

context.outputToResultTree(context.getStylesheet(), myElem);

但我希望应用样式表中定义的模板到 myElem 的子元素。

如何从 Java 类中触发 ?是否可以 ?

I am using Xalan and Java for extending a stylesheet.

(Similar example to what I am doing there : Dictionary example)

I struggle to make my tag do an <xsl:apply-templates/>. I wish to have this :

<xsl:template match="sometag">
    <my-java:tag>
        <xsl:apply-tempates/>
    </my-java:tag>
</xsl:template>

My java class containing the method tag(XSLProcessorContext context, ElemExtensionCall elem) builds an element myElem fed into the context like this :

context.outputToResultTree(context.getStylesheet(), myElem);

But I wish to apply the templates defined in the stylesheet to subelements of myElem.

How can I fire the <xsl:apply-templates/> from within my Java class ? Is it possible ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

柠檬色的秋千 2024-08-21 09:47:01

在 Xalan 中,我正在做的

TransformerImpl transf = context.getTransformer();
for ( int i = fromValue; i <= toValue; i++ )  {
  setInt(variable, i);
  transf.executeChildTemplates(elem, true );
}

想法是执行一个 for 循环( from 和 to 值),重复该 x 次内的代码。但不确定executeChildTemplates 上的“true” - 似乎有效。

In Xalan I'm doing

TransformerImpl transf = context.getTransformer();
for ( int i = fromValue; i <= toValue; i++ )  {
  setInt(variable, i);
  transf.executeChildTemplates(elem, true );
}

The idea is to execute a for loop ( the from and to values ) repeating the code inside that x times. Not sure about the 'true' on the executeChildTemplates though - seems to work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文