gpt4 book ai didi

java - 如何在xslt中使用java

转载 作者:行者123 更新时间:2023-12-01 19:56:31 26 4
gpt4 key购买 nike

如何在xslt中使用java并避免以下错误:

Cannot find a 1-argument function named {java:com.poc.XSDDateTimeFormatter}toXSD(). Reflexive calls to Java methods are not available under Saxon-HE and Cannot find a 2-argument function named {urn:java:com.poc.NLDataUnitTestTimeCalc}computeTestTime(). Reflexive calls to Java methods are not available under Saxon-HE

computeTestTime NLDataUnitTestTimeCalc的方法类

public static long computeTestTime( String startDateStr, String endDateStr) {

long testTime= 0;
long longStartDate= 0;
long longEndDate= 0;

for( String format: formats) {
try {
SimpleDateFormat formatter = new SimpleDateFormat(format);

Date startdate = formatter.parse(startDateStr);
Date enddate = formatter.parse(endDateStr);
longStartDate=startdate.getTime();
longEndDate=enddate.getTime();
testTime = (Math.abs(longEndDate-longStartDate)/1000);
break;
}
catch (ParseException ex) {
//ignore
}
}
return testTime;

}

toXSD method of XSDDateTimeFormatter class

public static String toXSD( String dateStr) {
for( String format: formats) {
try {
Date date = new SimpleDateFormat( format).parse( dateStr);
String xsd = new SimpleDateFormat( XSDdateTimeFormat).format( date);

//special case for xsd:dateTime timezone format
return
xsd.substring(0, xsd.length() - 2) +
':' +
xsd.substring(xsd.length() - 2);
} catch (ParseException ex) {
//ignore
}
}

return dateStr; }

xslt

<xsl:template match="/Event">

<bus:Timestamp>
<xsl:value-of xmlns:XSDDateTimeFormatter="java:com.amd.pde.integration.XSDDateTimeFormatter"
select="XSDDateTimeFormatter:toXSD( //TimeStamp)"
/>
</bus:Timestamp>

示例 xml

<Event>   
<Message>BEGINEXECUTION</Message>
<TimeStamp>20080111000419146</TimeStamp>
<EquipmentID>stack</EquipmentID>
</Event>

最佳答案

正如错误消息所示,您使用 Saxon-HE,但 Java 中的扩展函数仅受 Saxon-PE 和 Saxon-EE 支持。 Saxon-Docs明确提及这一点。

我想你有两个选择

  • 购买 Saxon-PE 或 Saxon-EE
  • 在 XSL 中实现您的函数

关于java - 如何在xslt中使用java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49494198/

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