java - 从 XML 响应中解码子元素

标签 java jaxb unmarshalling

我正在尝试解码 XML 响应。其结构如下

<employee>
 <name> David </name>
 <age> 33 </age>
 <dateofjoin>
 <year>2012</year>
 <month>10</month>
 <day>01</day>
 </dateofjoin>
</employee>

以下是我的员工类

public class Employee
{
    private Dateofjoin dateofjoin;

    private String name;

    private String age;

    public Dateofjoin getDateofjoin ()
    {
        return dateofjoin;
    }

    public void setDateofjoin (Dateofjoin dateofjoin)
    {
        this.dateofjoin = dateofjoin;
    }

    public String getName ()
    {
        return name;
    }

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

    public String getAge ()
    {
        return age;
    }

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

下面是我的dateofjoin类

    public class Dateofjoin
{
    private String month;

    private String year;

    private String day;

    public String getMonth ()
    {
        return month;
    }

    public void setMonth (String month)
    {
        this.month = month;
    }

    public String getYear ()
    {
        return year;
    }

    public void setYear (String year)
    {
        this.year = year;
    }

    public String getDay ()
    {
        return day;
    }

    public void setDay (String day)
    {
        this.day = day;
    }
}

我试图通过以下方式一次性解码这些响应 但我能够得到员工姓名、年龄。对于加入元素的日期,我如何在解码过程中获取元素值。我不想再进行解码。我可以看出这不是一种好的编程方式

while(xsr1.hasNext()) {
            if(xsr1.isStartElement() && xsr1.getLocalName().equals("employee")) {
                JAXBContext jc = JAXBContext.newInstance(Employee.class);
                Unmarshaller unmarshaller = jc.createUnmarshaller();
                Employee jb = unmarshaller.unmarshal(xsr1,Employee.class).getValue();
                System.out.println("Employee" + jb.getName()+"Age.getAge());
        }


            xsr1.next();

        }

非常感谢任何帮助。还希望看到一些解释,以便我可以根据问题清楚地理解

最佳答案

dataofjoin 应该已经包含在未编码的员工对象中

关于java - 从 XML 响应中解码子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28722044/

相关文章:

java - 在 java 原生接口(interface)中调用 DeleteLocalRef

javax.xml.bind.UnmarshalException : unexpected element. 预期的元素是(无)

java - 为什么 JAXB 不生成完整的类?

java - 如何防止 JAXB 从导入的模式生成 Java?

java - 为 JAXB.unmarshal() 提取 XML 节点的最简单方法是什么?

java - eclipse try-with-resource 模板?

java - GAE OAuth Java : No authentication header information

java - SocketChannel write() read() - 非阻塞 - Java

java - 使用 Jackson 将名为 "class"的字段反序列化为 POJO

java - Jax-b 在解码时解释过多