gpt4 book ai didi

javascript - BaseX:Javascript 函数在 XSLT 中不起作用

转载 作者:行者123 更新时间:2023-11-28 09:31:09 28 4
gpt4 key购买 nike

我使用 Altova 创建了一个 XSLT,现在我想将它与 Basex 一起使用并从 java 调用转换。在 Altova 中我没有任何问题,但在 Basex 下我有“[FODC0002] 无法编译样式表”。 XSLT 的一部分是:

  <xsl:stylesheet version='1.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:js="urn:custom-javascript" exclude-result-prefixes="msxsl js" xmlns:math="http://exslt.org/math" extension-element-prefixes="math">
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
<xsl:template match="Linee">
<root_bordero>
<xsl:element name="bordero">
<xsl:apply-templates select="Linea"/>
</xsl:element>
</root_bordero>
</xsl:template>
<xsl:template match="Linea">
<xsl:variable name="num_corse_mattina" select="count(./Fasce[./@nome='mattina']/orari_partenza/*)"/>
<xsl:variable name="num_bus" as="xs:integer" select="count(document('/path_to/Autobus.xml')/Autobus/Autobus[./@Linea=current()/@id_linea and ./@Fascia='mattina']/@Targa)"/>
.....
<xsl:variable name="array_bus_mat" as="xs:string*" select="tokenize(js:random(number($num_bus),number($num_corse_mattina)),'\s')"/>
......
</xsl:template>
<msxsl:script language="JavaScript" implements-prefix="js">
<![CDATA[
function random(range,lenght) {

var array = new Array(lenght);
var array_key = new Array(lenght);
var min = 1;
for (var i = 0; i < lenght; i++) {
array[i]=i+1;
}
array_key[0] = Math.floor(Math.random() * (range - min +1))+min;

for (var i=1; i<lenght; i++) {
var key = Math.floor(Math.random() * (range - min +1))+min;

while(array_key[i-1]==key){
key = Math.floor(Math.random() * (range - min +1))+min;
}
array_key[i]=key;
}

var string='';
for (var i=0; i<lenght-1; i++) {
string=''+string+array_key[i] + ' ';
}
string=string+array_key[i];

return string;
}
]]>
</msxsl:script>
</xsl:stylesheet>

在Java下,我尝试使用JAXP和Basex JQX进行XSLT转换,但编译错误是“非静态Java函数'random'的第一个参数不是有效的对象引用。”

请帮帮我!!!

最佳答案

msxsl:script 是该语言的专有 Microsoft 扩展,您不能指望它可以在非 Microsoft 处理器上运行。

关于javascript - BaseX:Javascript 函数在 XSLT 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13705505/

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