我需要注释一个类,用于解组这样的XML:
<element>data</element>
而且我不知道怎么做,因为该类必须用@XmlRootElement
注释,但我需要获取根元素值。我知道这不起作用,但这就是我所做的:
@XmlRootElement(name = "element")
public Class MyClass{
@XmlElement(name = "element")
protected String elementValue;
public String getElementValue(){...}
public void setElementValue(String el){...}
有没有可能得到这个?
答案 0 :(得分:5)
您正在寻找@XmlValue
注释。
<强> MyClass的强>
package forum13626828;
import javax.xml.bind.annotation.*;
@XmlRootElement(name = "element")
public class MyClass{
protected String elementValue;
@XmlValue
public String getElementValue() {
return elementValue;
}
public void setElementValue(String el) {
this.elementValue = el;
}
}
<强>演示强>
package forum13626828;
import java.io.StringReader;
import javax.xml.bind.*;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(MyClass.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
StringReader xml = new StringReader("<element>data</element>");
MyClass myClass = (MyClass) unmarshaller.unmarshal(xml);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(myClass, System.out);
}
}
<强>输出强>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<element>data</element>