<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)
答案 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: