【问题标题】:Using EXSLT in Xalan在 Xalan 中使用 EXSLT
【发布时间】:2017-12-04 09:07:19
【问题描述】:

我在应用服务器wildfly 中使用Xalan 作为XLST-Processor。到目前为止一切正常,但是当我尝试使用 exlst 中的日期和时间函数时,我得到了 NoClassDefFoundError,我不知道为什么。

定义是:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:datetime="http://exslt.org/dates-and-times" version="1.0"">

当我尝试使用年份函数datetime:year 时,我得到了错误。任何想法为什么找不到课程? 谢谢!

【问题讨论】:

  • 我可以使用例如&lt;test processor="{system-property('xsl:vendor')}" function-available="{function-available('datetime:year')}" result="{datetime:year()}"/&gt; 可以在 oXygen 19 中使用 Xalan 版本,提供 &lt;test xmlns:datetime="http://exslt.org/dates-and-times" result="2017" function-available="true" processor="Apache Software Foundation"/&gt;。不知道 wildfly 使用什么以及它如何配置 Xalan,您的应用程序中的 system-property('xsl:vendor') 会得到什么?使用任何 EXSLT 函数是否都会出现相同的错误??
  • 感谢您的回答。我可以毫无问题地使用 exlst:common。我将尝试变量 xsl:vendor 的值并很快将其写在这里。
  • 我仍然得到 NoClassDefFoundError。第一部分给了我:
  • Xalan 有两个 XSLT 处理器,一个解释器和一个编译器,也许编译器 XSLTC 没有如此广泛的 EXSLT 支持,所以如果您使用 Xalan 的本地安装,您总是可以使用 @ 实例化解释器987654326@.
  • 非常感谢!然后我必须包括 org.apache.xalan 和相应的序列化程序,但我可以使用日期函数!我的 xsl 中的其他一些东西不再起作用,但我想我也许可以重写它。这确实是编译器的问题。再次非常感谢。如果没有您的帮助,将无法解决此问题。

标签: java xslt wildfly-8 exslt


【解决方案1】:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date="http://exslt.org/dates-and-times"">

here 的文档中,他们总是使用“日期”而不是“日期时间”

【讨论】:

  • sry,是复制粘贴错误。我编辑了问题
猜你喜欢
  • 2014-03-31
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 2013-12-18
  • 2023-03-10
相关资源
最近更新 更多