gpt4 book ai didi

javascript - 尝试在 xslt 中调用 javascript 函数时出错(Java JDK 8)

转载 作者:行者123 更新时间:2023-12-01 21:49:55 25 4
gpt4 key购买 nike

我正在尝试在我的 XSL 文件中调用 javascript 函数。

我的 XSL:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:jscript="http://www.url.com" exclude-result-prefixes="msxsl jscript">
.
.
.
<html>
<head>
.
.
.
<msxsl:script language="JScript" implements-prefix="jscript">
<![CDATA[
function testFnc(){
return "test";
}
}]]>
</msxsl:script>
</head>
.
.
.
</html>
.
.
.
<xsl:value-of select="jscript:testFnc()"/>

在 Java 文件中,当我尝试创建 Transformer 时:

Transformer transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(xslUrl));

我收到错误:

ERROR: 'Cannot find class 'www.url.com'.'>

FATAL ERROR: 'Cannot find external method 'www.url.com.testFnc' (must be public).'

javax.xml.transform.TransformerConfigurationException: Cannot find external method 'www.url.com.testFnc' (must be public).

没有此代码

<xsl:value-of select="jscript:testFnc()"/>

一切正常。

在 Java 7 中,内置 Xalan 也存在类似问题: Xalan Java extensions 'Cannot find class' error on JRE 7

我想知道这个问题在 Java 8 中是否仍然存在。

我也尝试过这样的事情: http://xml.apache.org/xalan-j/extensions.html#basic-pattern How to include a call to JavaScript within XSLT?

但结果是一样的。

提前致谢

最佳答案

感谢 Martin Honnen 的帮助,我能够在 xslt 代码中使用我自己的 Java 类。您可以在文档中找到更多信息:http://xml.apache.org/xalan-j/extensions_xsltc.html#java_ext

xslt:

<xmlns:java_util="http://xml.apache.org/xalan/java/com.example.java.util" exclude-result-prefixes="java_util">
<!-- Java function call -->
<xsl:value-of select="java_util:DateUtil.formatDateTime(.)"/>

Java 类:

package com.example.java.util;

public class DateUtil {
public static String formatDateTime(String date){
//implementation
}
}

关于javascript - 尝试在 xslt 中调用 javascript 函数时出错(Java JDK 8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58767745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com