我的XML结构。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<A>
<B ID="www">
<C>abcde</C>
</B>
</A>
我使用Unmarshaller
。
System.out.println(c.toString()); => abcde
我想要属性信息。
System.out.println(????????); => ID or count
请帮助我。
答案 0 :(得分:2)
您可以执行以下操作
JAVA模型
JAXB(JSR-222)实现要求您具有将XML文档转换为的对象模型。
的 A 强> 的
import javax.xml.bind.annotation.*;
@XmlRootElement(name="A")
public class A {
private B b;
@XmlElement(name="B")
public B getB() {
return b;
}
public void setB(B b) {
this.b = b;
}
}
的乙强> 的
import javax.xml.bind.annotation.*;
public class B {
private String id;
private String c;
@XmlAttribute(name = "ID")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@XmlElement(name = "C")
public String getC() {
return c;
}
public void setC(String c) {
this.c = c;
}
}
DEMO CODE
将XML转换为Java对象后,您可以导航对象以获取所需的数据。
的演示强> 的
import java.io.File;
import javax.xml.bind.*;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(A.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
File xml = new File("src/forum14951650/input.xml");
A a = (A) unmarshaller.unmarshal(xml);
System.out.println(a.getB().getId());
System.out.println(a.getB().getC());
}
}
的输出强> 的
www
abcde