gpt4 book ai didi

java - JAXB:使用缩进编码输出 XML 在第一行创建空换行符

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:01:49 28 4
gpt4 key购买 nike

当我用这个属性编码 XML 时

marshal.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
marshal.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);

它会在最顶部生成一个空换行符

//Generate empty line break here    
<XX>
<YY>
<PDF>pdf name</PDF>
<ZIP>zip name</ZIP>
<RECEIVED_DT>received date time</RECEIVED_DT>
</YY>
</XX>

我认为原因是因为marshal.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE); , 删除 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> , 在输出 xml 的开头留一个换行符。有没有办法来解决这个问题?我使用 JDK 6 附带的 JAXB,Moxy 会遇到这个问题吗?

最佳答案

正如您指出的那样 EclipseLink JAXB (MOXy)没有这个问题,所以你可以使用它(我是 MOXy 的领导):

选项#1

一种选择是使用 java.io.FilterWriterjava.io.FilterOutputStream 并对其进行自定义以忽略前导新行。

选项#2

另一种选择是编码到 StAX,并使用支持格式化输出的 StAX 实现。我自己没有尝试过,但下面链接的答案建议使用 com.sun.xml.txw2.output.IndentingXMLStreamWriter

关于java - JAXB:使用缩进编码输出 XML 在第一行创建空换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9590564/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com