我目前正在使用标准 javax.xml.transform 库通过 XSL 将 XML 转换为 CSV。我的 XSL 文件很大 - 大约 950 行。我的 XML 文件也可能很大。
它在原型阶段运行良好,只有大约 50 行左右的一小部分 XSL。现在,在“最终系统”中,当执行转换时会出现错误分支目标偏移量对于短期而言太大.
private String transformXML() {
String formattedOutput = "";
try {
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer =
tFactory.newTransformer( new StreamSource( xslFilename ) );
StreamSource xmlSource = new StreamSource(new ByteArrayInputStream( xmlString.getBytes() ) );
ByteArrayOutputStream baos = new ByteArrayOutputStream();
transformer.transform( xmlSource, new StreamResult( baos ) );
formattedOutput = baos.toString();
} catch( Exception e ) {
e.printStackTrace();
}
return formattedOutput;
}
我看到了一些关于此错误的帖子,但不太确定该怎么做。
我在代码方面做错了什么吗?
是否有任何替代的第三方变压器可以做到这一点?
Thanks,
Andez
Try Saxon反而。
您的代码将保持不变。您需要做的就是设置javax.xml.transform.TransformerFactory
to net.sf.saxon.TransformerFactoryImpl
在 JVM 的系统属性中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)