我是JAXB的新手,我想将XML文件读取到Java对象,其格式如下:
<payTypeList>
<payType>G</payType>
<payType>H</payType>
<payType>Y</payType>
</payTypeList>
请帮我看看如何阅读这种类型的XML。
答案 0 :(得分:2)
这是您的方案
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="payTypeList")
@XmlAccessorType(XmlAccessType.FIELD)
public class PayTypeList {
@XmlElement
private List<String> payType;
public List<String> getPayType() {
return payType;
}
public void setPayType(List<String> payType) {
this.payType = payType;
}
}
使用方法
public static void main(String[] args) throws JAXBException {
final JAXBContext context = JAXBContext.newInstance(PayTypeList.class);
final Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
final PayTypeList paymentType = new PayTypeList();
List<String> paymentTypes = new ArrayList<String>();
paymentTypes.add("one");
paymentTypes.add("two");
paymentTypes.add("three");
paymentType.setPayType(paymentTypes);
m.marshal(paymentType, System.out);
}
<强>的Output.xml 强>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<payTypeList>
<payType>one</payType>
<payType>two</payType>
<payType>three</payType>
</payTypeList>
答案 1 :(得分:1)
对于此用例,您将拥有一个具有List<String>
属性的类。您可能需要使用的唯一注释是@XmlRootElement
和@XmlElement
,以便将List
属性映射到payType
元素。
了解更多信息
您可以在我的博客上找到有关使用这些注释的更多信息: