首页 > 解决方案 > 使用 JAXB 将 XML 标记内容存储到不同的变量

问题描述

我目前在我的项目中遇到一个问题,它涉及存储在 String 变量中的 XML。我正在尝试将 XML 的内容保存在不同的变量中。

使用包含相同变量名和标签名的通用 JAXB 方法应该可以解决我的问题。在这种情况下,我必须存储不同的变量名。

这是我的 XML

<?xml version="1.0" encoding="UTF-8"?>
<PORTAL>
    <NAME>PERSON 2.0</NAME>
    <ID>99995</ID>
    <DATAGENERATIO>2008-04-10</DATAGENERATIO>
    <HOURGENERATIO>05:07:35</HOURGENERATIO>
    <LANGUAGE>EN</LANGUAGE>
    <XMLVERSIO>1.0</XMLVERSIO>
</PORTAL>

这是用于存储该 XML 内容的类。

@XmlRootElement(name="PORTAL")
public class ApiPubPortal {

    private long idPortal;
    private String idIdioma;
    private String nombre;
    private Date dataGeneracio;
    private String versionXml;
}

我已经尝试使用@XmlElement(name="ID")但它给了我IllegalAnnotationExceptions

如果有人可以帮助我解决这个问题,我将不胜感激。

标签: javaxmlspringjaxbunmarshalling

解决方案


您需要确保所有私有字段都有 getter 和 setter。下面给出一个例子:

private long idPortal;

@XmlElement(name = "ID")
public long getIdPortal()
{
 return idPortal;
}
public void setIdPortal(long idPortal)
{
 this.idPortal = idPortal;
}

请注意将 @XmlElement(name = "ID") 放在您的吸气剂上。


推荐阅读