我有一个如下所示的类,我使用xSteam将Edge转换为xml。
@XStreamAlias("edge")
class Edge{
@XStreamAsAttribute
@XStreamAlias("source")
private String source;
@XStreamAsAttribute
@XStreamAlias("target")
private String target;
@XStreamAlias("data")
private Data data;
.....
}
当我设置data = null时,我可以得到
<edge source="8" target="10" />
但是当data = null
时,我希望得到以下内容 <edge source="8" target="10" ></edge>
有人可以为此提供帮助吗?
答案 0 :(得分:2)
你可以使用Dom4JDriver驱动程序。在这种情况下,您可以格式化您的xml输出 喜欢这段代码:
OutputFormat outPutFormat = new OutputFormat();
outPutFormat.setLineSeparator("");
outPutFormat.setExpandEmptyElements(true);
outPutFormat.setEncoding("UTF-8");
Dom4JDriver d4j = new Dom4JDriver(new XmlFriendlyNameCoder("_", "_"));
d4j.setOutputFormat(outPutFormat);
XStream xstream = new XStream(d4j);
xstream.autodetectAnnotations(true);
答案 1 :(得分:0)
在XML级别上您无能为力,因为在该级别上,两种形式完全相同。如果您确实需要一个表单而不是另一个表单,则必须提供自己的XML序列化程序,或者使用默认的序列化程序并对其输出流进行后处理。在不知道您目前如何序列化数据的情况下,我无法向您提供更多详细信息。