【发布时间】: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