【问题标题】:XSLT Xalan dyn:evaluate exampleXSLT Xalan dyn:评估示例
【发布时间】:2010-09-18 19:51:44
【问题描述】:

我希望您在样式表中使用 EXSLT - DYN:EVALUATE。我已经添加了名称速度,但我不知道我需要导入的 .xsl 文件在哪里。我不相信我安装了 XALAN 来指向导入。我将如何安装它?安装后,我将其指向 .xsl,它会获取该功能并应用它吗?我正在运行 Windows。 XSLT 文件包含在 XML 文档的顶部。

谢谢

皮特

【问题讨论】:

    标签: xml xslt xalan exslt xslt-extension


    【解决方案1】:

    你不能,因为如果你要为客户提供带有附加样式表的 XML 页面,这是行不通的。浏览器不支持 exslt。

    但是,如果您在服务器(使用 xalan)上进行 XSLT 处理,您可以让它工作,但我不明白您如何将 xslt 与 jsp 结合起来。

    【讨论】:

      【解决方案2】:

      如何从 JSP 页面调用它? JSP 提供 XML,当前将样式表附加到 XML 页面并提供结果。

      【讨论】:

        【解决方案3】:

        Xalan 具有内置的 EXSL dyn:evaluate 函数,您无需导入任何内容即可使用它。您只需要声明命名空间。我举个小例子:

        input.xml

        <root>
        <foo>I am foo</foo>    
        <bar>I am bar</bar>    
        </root>
        

        dyn_evaluate.xsl

        <xsl:stylesheet version="1.0"
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
            xmlns:dyn="http://exslt.org/dynamic"
            extension-element-prefixes="dyn">
        
          <xsl:param name="path"/>
        
          <xsl:output method="text"/>
        
          <xsl:template match="/">
            <xsl:value-of select="dyn:evaluate($path)"/>
          </xsl:template>
        
        </xsl:stylesheet>
        

        跑步

        xalan.exe -p path '/root/foo' input.xml dyn_evaluate.xsl
        

        给予

        I am foo
        

        跑步

        xalan.exe -p path '/root/bar' input.xml dyn_evaluate.xsl

        给予

        I am bar
        

        希望这会有所帮助。

        【讨论】:

        • 我知道这是一个古老的线程,但请注意,如果您使用 javax.xml.transform.TransformerFactory 抽象出您的 XSLT 处理器,dyn:evaluate 将失败,默认的 TransformerFactory 实现随JDK。这是因为JDK实现的是Xalan XSLTC编译器,而不是解释器,虽然dyn:evaluate被识别,但无法处理。
        猜你喜欢
        • 2010-12-04
        • 1970-01-01
        • 2010-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-02
        • 1970-01-01
        相关资源
        最近更新 更多