我有对象,树/模型/层次结构,无论正确的术语是什么.它由可以表征为所需XML的一对一映射的内容组成.
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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。