【发布时间】:2017-03-23 02:19:07
【问题描述】:
我收到了一个 XSLT 文件,其中包含嵌入的 javascript 代码,但与除 Internet Explorer 之外的任何浏览器都不兼容(Chrome 未显示所有内容,firefox 仅显示异常)
xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:js="urn:custom-javascript"
...
<msxsl:script language="JavaScript" implements-prefix="js"><![CDATA[
function doSomething() { ... }
function doStuff() { ... }
]]></msxsl:script>
由于客户端转换并不完美...我希望服务器端转换可以解决一些问题。不幸的是,我无法对给定的 XSLT 文件进行任何更改,但我确实在服务器端遇到了错误:
Caused by: javax.xml.transform.TransformerConfigurationException: The first argument to the non-static Java function 'doSomething' is not a valid object reference.
经过一些研究,似乎 Javascript 代码不能与 Xalan 或 Saxon 一起使用......但我找不到任何替代方案(当然除了更改 XSLT 代码......)
是否有任何其他库可以在服务器端使用 Javascript 处理 XSLT?或者我是否应该停止尝试找到我这边的解决方案。
【问题讨论】:
-
任何扩展元素和脚本的使用都取决于 XSLT 处理器,给定
xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:js="urn:custom-javascript"并且它与 IE 一起使用,处理器是 MSXML 3 或 6,您可以在任何使用 COM 的 Windows 操作系统上运行它Windows 上的许多脚本语言或编程语言提供的自动化。但在 Windows 之外不支持 MSXML。 -
转换 Javascript 有多难?
-
我不知道,我对 XSLT 没有任何真正的了解。我只需要在我们的产品中包含一个 XSLT,但是这个文件是由另一家公司开发的。我会联系他们,看看他们是否可以更改。
标签: javascript java xslt saxon xalan