【问题标题】:Is there any range limit for XSL:VARIABLEXSL:VARIABLE 是否有任何范围限制
【发布时间】:2011-10-04 08:49:18
【问题描述】:
<xsl:for-each select="//detailoption | //systemnotes">
  <xsl:if test="normalize-space(@id)!=''">~</xsl:if>
</xsl:for-each>

此循环运行短迭代。但是当迭代增加时,整个 XSL 无法转换并引发错误。

SystemId 未知;第 0 行; #0 列; java.lang.ArrayIndexOutOfBoundsException

XSL 中的变量数据有范围限制吗?有什么办法可以克服这个问题吗?

Xalan 2.7.0 。有没有办法找到它的更多细节。
我们目前的编码是:

TransformerFactory factory = TransformerFactory.newInstance();
factory.setURIResolver(createURIResolver()); 
Templates template = factory.newTemplates(xslIn); 
Transformer xformer = template.newTransformer(); 
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
OutputStream hndWrite = byteStream;
Result result = new javax.xml.transform.stream.StreamResult(hndWrite); 
xformer.transform(xmlIn, result)

【问题讨论】:

  • 您使用的是什么库(和版本)?夏兰?
  • 关于限制问题,我认为很重要,包括使用的 xslt 处理器、xslt 版本、环境等细节......
  • Xalan 2.7.0 。有没有办法找到它的更多细节。我们当前的编码是 TransformerFactory factory = TransformerFactory.newInstance(); factory.setURIResolver(createURIResolver());模板模板 = factory.newTemplates(xslIn);变压器 xformer = template.newTransformer(); ByteArrayOutputStream byteStream = new ByteArrayOutputStream();输出流 hndWrite = 字节流;结果结果 = new javax.xml.transform.stream.StreamResult(hndWrite); xformer.transform(xmlIn, 结果);

标签: variables types range xslt xalan


【解决方案1】:

我建议你将你的 Xalan 升级到 2.7.1,然后再试一次。有几个性能改进和错误修正。在此处查看有关 JIRA 的发行说明:

https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10584&version=10863

另请参阅我最近进行的一些基准测试。 Xalan 2.7.1 的平均基准测试速度比 2.7.0 快 2 倍:

Java XPath (Apache JAXP implementation) performance

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2018-12-08
    • 1970-01-01
    • 2021-06-25
    • 2014-08-24
    • 2021-11-26
    相关资源
    最近更新 更多