我正在使用StAX创建一个很大的xml文档。到目前为止,我一直在使用IndentingXMLStreamwriter类来获取格式正确的文档(另请参见this answer)。几天前,我们使用较旧的jdk版本(6.26)设置了一个jenkins服务器,在该版本上我遇到了构建错误。

package com.sun.xml.internal.txw2.output does not exist

我假设由于安装了jdk版本而找不到该软件包。由于不同的原因,无法更改
(顺便说一句,是否有人知道添加了此软件包(com.sun.xml.internal.txw2.output)的jdk版本?)。
因此,我正在寻找一种替代方法来进行缩进。我希望使用一种与我使用的解决方案相似的解决方案,这意味着无需重新解析文档。有什么想法或建议吗?

谢谢
拉尔斯

最佳答案

如果其他建议不起作用,则可以从Saxon获得缩进XMLStreamWriter,如下所示:

Processor p = new net.sf.saxon.s9api.Processor();
Serializer s = p.newSerializer();
s.setOutputProperty(Property.METHOD, "xml");
s.setOutputProperty(Property.INDENT, "yes");
s.setOutputStream(....);
XMLStreamWriter writer = s.getXMLStreamWriter();

一个优点是,这使您可以使用其他序列化属性对序列化进行大量控制。

10-07 12:56