、@XmlAttribute を使用、name は属性名です"/> 、@XmlAttribute を使用、name は属性名です">

ホームページ  >  記事  >  Java  >  Java で XML を Bean インスタンス解析に変換する (純粋なコード)

Java で XML を Bean インスタンス解析に変換する (純粋なコード)

php是最好的语言
php是最好的语言オリジナル
2018-08-08 13:42:353405ブラウズ

最近使用した、自作のデモを記録します

  1. ルート要素に @XmlRootElement アノテーションを使用し、name は要素名です

  2. 子要素の属性に @XmlElement を使用し、name は要素名です

  3. 場合属性があります (例: 557fd2d237e2fd7075bc635fe517b85f)。 @XmlAttribute を使用します。 name は属性名です

xml:

<?xml version="1.0" encoding="UTF-8"?>
<employees>
    <employee>
        <userId>johnsmith@company.com</userId>
        <password>abc123_</password>
        <name>John Smith</name>
        <age>24</age>
        <gender>Male</gender>
    </employee>
    <employee>
        <userId>christinechen@company.com</userId>
        <password>123456</password>
        <name>Christine Chen</name>
        <age>27</age>
        <gender>Female</gender>
    </employee>
</employees>

Employees:

import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "employees")
public class Employees {

    private List<Employee> eList;
    @XmlElement(name = "employee")
    public List<Employee> geteList() {
        return eList;
    }

    public void seteList(List<Employee> eList) {
        this.eList = eList;
    }

}

Employee:

import javax.xml.bind.annotation.XmlElement;

public class Employee {
    private String userId;
    private String password;
    private String name;
    private String age;
    private String gender;
    @Override
    public String toString() {
        return "Employee [userId=" + userId + ", password=" + password
                + ", name=" + name + ", age=" + age + ", gender=" + gender
                + "]";
    }
    @XmlElement(name="userId")
    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    @XmlElement(name="password")
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @XmlElement(name="name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @XmlElement(name="age")
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    @XmlElement(name="gender")
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }

}

解析クラス

 public static void main(String[] args) throws JAXBException {
        JAXBContext context = JAXBContext.newInstance(Employees.class);
        Unmarshaller createUnmarshaller = context.createUnmarshaller();
        Object unmarshal = createUnmarshaller.unmarshal(
                new File("D:/java/workspacedev/JavaTest/xml/employees.xml"));
        Employees em = (Employees) unmarshal;
        List<Employee> list = em.geteList();
        for (Employee employee : list) {
            System.out.println(employee);
        }
        
    }

関連する推奨事項:

Java と

以上がJava で XML を Bean インスタンス解析に変換する (純粋なコード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。