我正在尝试使用没有运气的转换器/封送平整xstream的xml输出。例如,
public class A{ public B b; public int F; public String G; } public class B{ public String C; public String D; public int E; }
输出为
<A> <B> <C></C> <D></D> <E></E> </B> <F></F> <G></G> </A>
但是我需要
<A> <C></C> <D></D> <E></E> <F></F> <G></G> </A>
这可能吗?如何摆脱B?(C,D,E是唯一命名的)。谢谢。到目前为止,我的尝试是
... public void marshal(Object value, HierarchicalStreamWriter writer, MarshallingContext context) { B b = (B) value; writer.startNode("C"); writer.setValue(b.getC()); writer.endNode(); writer.startNode("D"); writer.setValue(b.getD()); writer.endNode(); writer.startNode("E"); writer.setValue(b.getE()); writer.endNode(); }
根据与XStream绑定的方式,您可以使用@XmlPath批注在EclipseLink MOXy中非常轻松地完成此操作:
public class A{ @XmlPath(".") public B b; public int F; public String G; } public class B{ public String C; public String D; public int E; }
有关基于MOXy的XPath映射的信息,请参见: