我正在使用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<> 父标签,如下所示:
<Window>
<WindowType>Monthly</WindowType>
<WindowBegin>
<Month>null</Month>
<Day>null</Day>
</WindowBegin>
<WindowEnd>
<Month>null</Month>
<Day>null</Day>
</WindowEnd>
</Window>
<Window>
....
</Window>
此问题使用 string.replace,但如果此列表位于需要清理的另一个对象中,这将在 xml 中留下空白。速度是重中之重,因此如果可能的话,我一直在 XStream 本身中寻找一种方法。
谢谢
我
可能没有正确表达问题,但我找到的解决方案(通过 XStream)并没有完全删除标签,而是使用隐式命名将父标签与其子标签组合在一起。感谢@Blaise Doughan为此提供的出色教程。
例)
列表窗口;将序列化为:
<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>