Jaxb对XML的解析

XML 是一种网络通信的数据交换的重要公共语言,是跨平台跨语言通信的一种重要手段,也是复杂配置文件的常用格式。在 Java 中操作 XML 是相当方便的,常用的读取解析xml的方式有DOM(Document Object Mode)模型和SAX(Simple API for XML)模型等,这些方式网络上的资料非常多,这里不再赘述。

无论是DOM模型还是SAX模型,都需要用户根据XML文件的内容格式手动配置解析各个元素属性等,使用起来还是不够方便。如果有一种方式能将xml结构与javabean对象相互映射,那将大大简化xml文件解析过程,使用起来非常方便。

本文介绍Jaxb对xml文件的解析。

Jaxb(Java Architecture for XML Binding) 是一个业界的标准,它使用注解配置,提供XML文件与Java对象之间的自动映射。JDK6以上版本已经集成JAXB功能,无需第三方依赖即可直接使用。

从JavaBean对象到XML的映射

首先创建一个JavaBean类:

import java.util.List;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlList;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

@XmlRootElement(name = "doc")
public class DocType {
   

    private String name;
    private int id;
    private String attr;
    private List<String> lst;

    public List<String> getLst() {
        return lst;
    }

    public DocType setLst(List<String> lst) {
        this.lst = lst;
        return this;
    }

    @XmlAttribute
    public String getAttr() {
        return attr;
    }

    public void setAttr(String attr) {
        this.attr = attr;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "DocType [name=" + name + ", id=" + id + ", attr=" + attr + ", lst=" + lst + "]";
    }
}

测试类(测试从javaBean映射到XML):

import java.util.Arrays;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;


public class JavaBean2XMLTest{
   

    public static void main(String[] args) throws JAXBException {
        //从JavaBean对象到XML
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值