Java 如何使用jaxb解析xml

Java 如何使用jaxb解析xml,java,xml,jaxb,jaxb2,Java,Xml,Jaxb,Jaxb2,我是JAXB新手,我想将XML文件读入Java对象,格式如下: G H Y 请帮助我如何阅读这种类型的XML。对于这个用例,您将有一个带有列表的类。您可能需要使用的唯一注释是@XmlRootElement和@XmlElement,以将列表属性映射到付款类型元素 了解更多信息 您可以在我的博客上找到有关使用这些注释的更多信息: 这是您的方案 import java.util.List; import javax.xml.bind.annotation.XmlAccessType; im

我是JAXB新手,我想将XML文件读入Java对象,格式如下:


G
H
Y

请帮助我如何阅读这种类型的XML。

对于这个用例,您将有一个带有
列表的类。您可能需要使用的唯一注释是
@XmlRootElement
@XmlElement
,以将
列表
属性映射到
付款类型
元素

了解更多信息

您可以在我的博客上找到有关使用这些注释的更多信息:


    • 这是您的方案

      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;
          }
      }
      
      import java.util.List;
      导入javax.xml.bind.annotation.XmlAccessType;
      导入javax.xml.bind.annotation.XmlAccessorType;
      导入javax.xml.bind.annotation.xmlement;
      导入javax.xml.bind.annotation.XmlRootElement;
      @XmlRootElement(name=“payTypeList”)
      @XmlAccessorType(XmlAccessType.FIELD)
      公共类薪资类型列表{
      @XmlElement
      私人列表付费类型;
      公共列表getPayType(){
      返回支付类型;
      }
      公共作废setPayType(列表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);
              }
      
      publicstaticvoidmain(字符串[]args)抛出jaxbeexception{
      final-JAXBContext-context=JAXBContext.newInstance(PayTypeList.class);
      final Marshaller m=context.createMarshaller();
      m、 setProperty(Marshaller.JAXB_格式化的_输出,true);
      最终PayTypeList paymentType=新的PayTypeList();
      List paymentTypes=new ArrayList();
      付款类型。添加(“一”);
      支付类型。添加(“两个”);
      付款类型。添加(“三”);
      paymentType.setPayType(paymentTypes);
      m、 封送员(付款类型,系统输出);
      }
      
      Output.xml

      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <payTypeList>
          <payType>one</payType>
          <payType>two</payType>
          <payType>three</payType>
      </payTypeList>
      
      
      一
      二
      三
      
      Hi Doughan,有没有有用的源代码/链接来配置带有MOXY的Jaxb。@ArvindSingh-你可以在我的博客上找到很多有用的信息:很高兴帮助你:)签署你的问题并接受答案:)@ArvindSingh这个主题仍然开放吗?