zoukankan      html  css  js  c++  java
  • java与xml之间的转换(jaxb)

    使用java提供的JAXB来实现java到xml之间的转换,先创建两个持久化的类(Student和Classroom):

    Classroom:

    package com.model;
    
    public class Classroom {
        private int id;
        private String name;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Classroom(){
            super();
        }
        public Classroom(int id,String name){
            this.id = id;
            this.name = name;
    } }

    Student:

    import javax.xml.bind.annotation.XmlRootElement;
    //不要忘记了这个注解@XmlRootElement,说明将Student作为xml的根元素
    @XmlRootElement
    public class Student {
        private String name;
        private String sex;
        private int age;
        private Classroom classroom;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public Classroom getClassroom() {
            return classroom;
        }
        public void setClassroom(Classroom classroom) {
            this.classroom = classroom;
        }
        public Student(){
            super();
        }
        public Student(String name,String sex,int age,Classroom classroom){
            super();
            this.age=age;
            this.classroom=classroom;
            this.name = name;
            this.sex = sex;
        }
    }

    下面可以建立我的main函数了,在此,我们用的是JAXBContext创建的marshaller与unmarshaller来解析java与xml

    package test;
    
    import java.io.StringReader;
    
    import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Marshaller;
    import javax.xml.bind.Unmarshaller;
    
    import com.model.Classroom;
    import com.model.Student;
    
    public class Test {
        public static void main(String[] args) {
         //new Test().java_xml(); 
    new Test().xml_java(); } public void java_xml(){ try { JAXBContext jaxbc = JAXBContext.newInstance(Student.class); Marshaller marshaller = jaxbc.createMarshaller(); Student stu = new Student("小瞧","男",22,new Classroom(12,"10级")); //marshaller.setProperty(marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(stu, System.out); } catch (JAXBException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void xml_java(){ String xml = "<?xml version="1.0" encoding="UTF-8" standalone="yes"?>" + "<student><age>22</age>" + "<classroom>" + "<id>12</id>" + "<name>10级</name>" + "</classroom>" + "<name>小瞧</name>" + "<sex>男</sex>" + "</student>"; try { JAXBContext jaxbc = JAXBContext.newInstance(Student.class); Unmarshaller unmar = jaxbc.createUnmarshaller(); Student stu = (Student)unmar.unmarshal(new StringReader(xml)); System.out.println(stu.getAge()); } catch (JAXBException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
    我很小我很弱,我在慢慢成长!
  • 相关阅读:
    QTableWidget控件总结<一>
    软件工程概论9
    软件工程概论8
    软件工程概论7
    软件工程概论6
    软件工程概论5
    软件工程概论4
    软件工程概论3
    软件工程概论2
    安装gocode教程
  • 原文地址:https://www.cnblogs.com/lvzhanhui/p/xiaoqiaolv_java_xml.html
Copyright © 2011-2022 走看看