XSL:VARIABLE是否有任何范围限制

时间:2011-07-13 10:04:32

标签: variables types range xslt xalan

<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)

1 个答案:

答案 0 :(得分:0)

我建议你将Xalan升级到2.7.1,然后再试一次。有几个性能改进和错误修正。请参阅JIRA上的发行说明:

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

另见我最近做的一些基准测试。 Xalan 2.7.1的平均基准测试速度提高了2倍,而不是2.7.0:

Java XPath (Apache JAXP implementation) performance