【问题标题】:Rule or Scripting Languages that can be converted to both Java and XSLT可以转换为 Java 和 XSLT 的规则或脚本语言
【发布时间】:2012-02-16 20:47:47
【问题描述】:

是否有任何规则或脚本语言存在一个或多个 Java 库以将其转换为 Java 和 XSLT?

为了转换成Java,它既可以生成Java源代码,也可以生成Java字节码。它需要易于从 Java 调用和“轻量级”/高性能。

对于 XSLT... 生成函数或模板的等价物或操作传入的值并返回结果的东西。

通过转换,我的意思是有人用某种语言(规则/脚本/其他)编写代码。然后我在该代码上运行一些“转换”并获得 Java 代码(源代码或字节码)。我在同一代码上运行了一些其他“转换”,得到了 XSLT 代码。

由于我猜测 XSLT 的情况更难解决,这里有一个可能的简化示例:

输入规则/脚本语言:

// Some language psuedocode
output(concat(value1, value2, value3))

输出 XSLT:

<xsl:value-of select="concat($value1, $value2, $value3)"/>

【问题讨论】:

  • 没有示例或定义的问题(在本例中为“转换”)没有明确定义。请编辑并更正。

标签: java xslt code-generation


【解决方案1】:

想到Groovy,您可以根据需要实际键入java,或者使用它们更有效的语法。

它也被扩展为Grails,它有效地是Groovy on Rails。 SpringSource 支持这两者并且是高性能和轻量级的。它们将编译为 Java 字节码。

有关于使用 Groovy with XSLT 的链接,您提到您想将脚本“转换”为 XSTL,不确定您的意思,但您当然可以将 XSLT 与 groovy 一起使用。

如果您需要创建某种模板来生成 java 代码、html、文本、电子表格,几乎任何东西都有Apache Velocity,它是一种模板语言/引擎来引用在 java 代码中定义的对象。

BeanShell 是另一种,语法就像 java,它是一种脚本语言,根据我的经验,您可以在 java 中执行的任何操作都可以在 BeanShell 中执行。

【讨论】:

    【解决方案2】:

    您始终可以尝试使用antlr 并实现自己的解析器/转换器。

    【讨论】:

      【解决方案3】:

      Xalan XSLTC 支持将 xslt 编译为 java 字节码,因此如果 xslt 符合您对脚本语言的定义,这是可能的。对 xslt 的编译只是身份转换:)

      【讨论】:

        猜你喜欢
        • 2020-07-27
        • 1970-01-01
        • 2011-09-22
        • 1970-01-01
        • 2012-11-24
        • 2012-03-19
        相关资源
        最近更新 更多