当前位置:编程学习 > XML/UML >>

利用 JavaBean 读取xml文件

[html]
<PRE class=java name="code">package demo20130531; 
 
import javax.xml.bind.annotation.XmlRootElement; 
@XmlRootElement 
public class Article { 
 
    private String title; 
 
    private String author; 
 
    private String email; 
 
    private String date; 
 
    private Authors authors; 
     
    public String getTitle() { 
        return title; 
    } 
 
    public void setTitle(String title) { 
        this.title = title; 
    } 
 
    public String getAuthor() { 
        return author; 
    } 
 
    public void setAuthor(String author) { 
        this.author = author; 
    } 
 
    public String getEmail() { 
        return email; 
    } 
 
    public void setEmail(String email) { 
        this.email = email; 
    } 
 
    public String getDate() { 
        return date; 
    } 
 
    public void setDate(String date) { 
        this.date = date; 
    } 
 
    public Authors getAuthors() { 
        return authors; 
    } 
 
    public void setAuthors(Authors authors) { 
        this.authors = authors; 
    } 
 
 

</PRE><BR> 
<?xml version="1.0" encoding="UTF-8"?><articles><article><title>hello</title><author>ctl</author><email>ctl_cn@163.com</email><date>1991-06-29</date><authors><age>22</age><sex>M</sex><address>河南</address></authors></article></articles> 
<PRE></PRE> 
<PRE class=java name="code">package demo20130531; 
 
public class Authors { 
    private int age; 
    private String sex;//不可以是char类型 
    private String address; 
    public int getAge() { 
        return age; 
    } 
 
    public void setAge(int age) { 
        this.age = age; 
    } 
 
    public String getSex() { 
        return sex; 
    } 
 
    public void setSex(String sex) { 
        this.sex = sex; 
    } 
 
    public String getAddress() { 
        return address; 
    } 
 
    public void setAddress(String address) { 
        this.address = address; 
    } 
 
    public String toString() { 
        return "age:" + age + 
                "  sex:" + sex + 
                " address:" + address; 
    } 

</PRE><BR> 
<PRE class=java name="code">package demo20130531; 
 
import java.io.File; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.Iterator; 
import java.util.List; 
 
import javax.xml.bind.JAXBContext; 
import javax.xml.bind.JAXBException; 
import javax.xml.bind.Unmarshaller; 
import javax.xml.bind.annotation.XmlRootElement; 
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; 
 
//根元素的标签名为articles 
@XmlRootElement(name = "articles") 
public class ArticleData { 
 
    //articles元素下有多个article元素 
    List<Article> article = new ArrayList<Article>(); 
 
    public List<Article> getArticle() { 
        return article; 
    } 
 
    public void setArticle(List<Article> article) { 
        this.article = article; 
    } 
 
    public static void main(String[] args) throws IOException { 
 
        // 创建xml文档对象,其保存在E盘的根目录下的article.xml文件 
        File xmlFile = new File("src2/demo20130531/article.xml"); 
//      System.out.println(xmlFile.getAbsolutePath()); 
//      System.out.println(xmlFile.getParent()); 
        if(!xmlFile.exists()) 
            xmlFile.createNewFile(); 
        // 声明JAXBContext上下文对象 
        JAXBContext context; 
        try { 
            // 通过指定映射的类创建上下文 
            context = JAXBContext.newInstance(ArticleData.class); 
            // 通过上下文创建xml转化java的对象Unmarshaller 
            Unmarshaller u = context.createUnmarshaller(); 
            // 将xml数据转换成java对象 
            ArticleData data = (ArticleData) u.unmarshal(xmlFile); 
            // 获得所有的article数据 
            List<Article> articles = data.getArticle(); 
    

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,