java – 如何从对象层次结构生成xml?
发布时间:2020-12-15 05:04:07 所属栏目:Java 来源:网络整理
导读:我有对象,树/模型/层次结构,无论正确的术语是什么.它由可以表征为所需 XML的一对一映射的内容组成. 这就是我有以下内容(使用非标准的UML语法) class A { class B b[*] class C class D}class B { class C c[*] string AttributeFoo = "bar"}class C { string
我有对象,树/模型/层次结构,无论正确的术语是什么.它由可以表征为所需
XML的一对一映射的内容组成.
这就是我有以下内容(使用非标准的UML语法) class A { class B b[*] class C class D } class B { class C c[*] string AttributeFoo = "bar" } class C { string AttributeThis = "is" } class D { string AttributeName = "d" } 期望的输出是这样的: <?xml version="1.0"?> <a> <b attribute-foo="bar"> <c attribute-this="is"/> </b> <c attribute-this="is"/> <d attribute-name="d"/> </a> 您认为什么是实现这一目标的最佳和/或最简单的方法? 解决方法
我会看看JAXB,因为a)你在标准库中得到它并且b)它并不复杂.此代码需要Java 6:
@XmlRootElement public static class A { public List<B> b = new ArrayList<B>(); } public static class B { public List<C> c = new ArrayList<C>(); @XmlAttribute(name = "attribute-foo") public String attributeFoo = "foo"; } public static class C { @XmlAttribute(name = "attribute-this") public String attributeThis = "is"; } public static void main(String[] args) { A a = new A(); a.b.add(new B()); a.b.get(0).c.add(new C()); JAXB.marshal(a,System.out); } //TODO: getters/setters,error handling and so on 输出: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <a> <b attribute-foo="foo"> <c attribute-this="is"/> </b> </a> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |