我正在使用XStream将java对象转换为XML对象。
一个这样的对象包含一个List<Window> windows
变量,生成后会显示:
<windows>
<Window>
<WindowType>Monthly</WindowType>
<WindowBegin>
<Month>null</Month>
<Day>null</Day>
</WindowBegin>
<WindowEnd>
<Month>null</Month>
<Day>null</Day>
</WindowEnd>
</Window>
<Window>
....
</Window>
</windows>
我想知道是否可以阻止List&lt;&gt;正在生成父标记,如下所示:
<Window>
<WindowType>Monthly</WindowType>
<WindowBegin>
<Month>null</Month>
<Day>null</Day>
</WindowBegin>
<WindowEnd>
<Month>null</Month>
<Day>null</Day>
</WindowEnd>
</Window>
<Window>
....
</Window>
This question使用string.replace,但如果此列表位于需要清理的另一个对象中,则会在xml中留下空白。速度是最重要的,所以我想在可能的情况下从XStream中寻找一种方法。
谢谢
答案 0 :(得分:0)
我可能没有正确地说出问题,但我找到的解决方案(通过XStream)并没有完全删除标记,而是使用隐式命名将父标记与其子标记结合起来。 感谢@Blaise Doughan's优秀的tutorials。
例)
列出窗口; 将序列化为:
<windows>
<Window>
<WindowType>Monthly</WindowType>
<WindowBegin>
<Month>null</Month>
<Day>null</Day>
</WindowBegin>
<WindowEnd>
<Month>null</Month>
<Day>null</Day>
</WindowEnd>
</Window>
<Window>
....
</Window>
</windows>
但是补充说:
@XStreamImplicit(itemFieldName="Window")
List<Window> windows;
将序列化为:
<Window>
<WindowType>Monthly</WindowType>
<WindowBegin>
<Month>null</Month>
<Day>null</Day>
</WindowBegin>
<WindowEnd>
<Month>null</Month>
<Day>null</Day>
</WindowEnd>
</Window>
<Window>
....
</Window>