java - Simplexml 列表不起作用

标签 java xml simple-framework

我想使用 SimpleXML 读取并解析包含员工信息的 XML 文件。框架。这是我的 XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
    <Employees>
        <Employee>
            <age>29</age>
            <name>Pankaj</name>
            <gender>Male</gender>
            <role>Java Developer</role>
        </Employee>
        <Employee>
            <age>35</age>
            <name>Lisa</name>
            <gender>Female</gender>
            <role>CEO</role>
        </Employee>
    </Employees>

这是员工类:

@Root
public class Employees {

    @ElementList(inline = true)
    private List<Employee> list;

    public List<Employee> getList() {
        return list;
    }
}

这是 Employee 类:

@Root
public class Employee {

    @Element
    private String name;

    @Element
    private String gender;

    @Element
    private int age;

    @Element
    private String role;

    public String getName() {
        return name;
    }

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

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    @Override
    public String toString() {
        return " Name=" + this.name + " Age="
                + this.age + " Gender=" + this.gender + " Role=" + this.role;
    }
}

但是当我尝试读取和解析 XML 文件时,发生了异常。这是输出:

Exception in thread "main" org.simpleframework.xml.core.ElementException: Element 'Employee' does not have a match in class Employees at line 3

最佳答案

您在定义列表名称时犯了错误:

@Root
public class Employees {

    @ElementList(inline = true)
    private List<Employee> Employees; //The list name should match with xml list name."

    public List<Employee> getList() {
        return list;
    }
}

在您的 XML 中,您有一个“Employees”元素类型“Employee”列表。但是在你的java程序中,你将“Employees”列表定义为“list”:

关于java - Simplexml 列表不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25932810/

相关文章:

java - 如何在 Dropwizard 中记录 SQL 语句

java - 如何通过 DomainClassConverter 使用自定义 ID 转换?

android - 以编程方式在 Android 应用程序中获取 xml 命名空间

android - Admob 与 Android 中的 simple-xml 集成?

java - org.hibernate.StaleStateException : Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

java - Eclipse调试执行Java程序而不在断点处停止

java - 使用 CSVParser 解析制表符分隔的文件

Java - 使用 XStream 将 XML 转换为 HashMap - CannotResolveClassException : Response

java - 使用 SimpleXml 和 Retrofit 的 Android RSS 阅读器 - 媒体 :thumbnail parse issue

java - Android 中的 SimpleXML 反序列化错误