【问题标题】:xml with attributes to java object with jaxb带有属性的xml与带有jaxb的java对象
【发布时间】:2020-05-06 17:31:46
【问题描述】:

我有一个如下的 xml:

<response>
    <adminArea5 type="City">Rochester</adminArea5>
    <adminArea3 type="State">NY</adminArea3>
    <adminArea4 type="County">Monroe County</adminArea4>             
    <adminArea1 type="Country">US</adminArea1>
</response>

Java 类:

public class Response{

    private String street;

    @XmlAttribute(name = "adminArea5")
    private String city;

    @XmlAttribute(name = "adminArea3")
    private String state;

    @XmlAttribute(name = "adminArea4")
    private String county;

    @XmlAttribute(name = "adminArea1")
    private String country;
}

我正在使用“JAXB.unmarshal(new StringReader(xml), targetClass)”将 xml 解析为 java 对象。 但是这些字段在解析 xml 后为空。任何帮助将不胜感激。

【问题讨论】:

标签: java xml jaxb


【解决方案1】:

如下更新您的 Java 类

@XmlRootElement(name = "response")
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Response {
    private String street;

    @XmlElement(name = "adminArea5")
    private String city;

    @XmlElement(name = "adminArea3")
    private String state;

    @XmlElement(name = "adminArea4")
    private String county;

    @XmlElement(name = "adminArea1")
    private String country;

    @Override
    public String toString() {
        return "Response{" +
                "street='" + street + '\'' +
                ", city='" + city + '\'' +
                ", state='" + state + '\'' +
                ", county='" + county + '\'' +
                ", country='" + country + '\'' +
                '}';
    }
}

还要检查 XmlElement 和 XmlAttribute XML attribute vs XML element 之间的区别

【讨论】:

  • 属性type怎么样?
猜你喜欢
  • 2018-02-14
  • 2011-03-18
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 2017-04-24
  • 2017-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多