How to get xml attribute using JAXB

java, jaxb, xml-parsing

Solution

Bank

You need to change the `property` property from a `String` to a domain object.

@XmlAccessorType(XmlAccessType.FIELD)
public class Bank {
    private String description;
    private String externalkey;
    private Property property;
}

Property

Then your `Property` object would look something like:

@XmlAccessorType(XmlAccessType.FIELD)
public class Property {

    @XmlAttribute
    private String name;

    @XmlAtrribute
    private String value;

}

Problem

this is my xml: ``` <?xml version="1.0" encoding="UTF-8" ?> <organization> <bank> <description>aaa</description> <externalkey>123</externalkey> <property name="pName" value="1234567890" /> </bank> </organization> ``` I used JAXB and unmarshall for this xml and I can get description and externalkey. But I cannot get property name with value. This is my java class for unmarshall: ``` JAXBContext jb = JAXBContext.newInstance(Organization.class); Unmarshaller um = jb.createUnmarshaller(); Organization org = (Organization) um.unmarshal(new File("\\upload\\bank999999.xml")); System.out.println(org.getBank().getDescription()); System.out.println(org.getBank().getExternalkey()); ``` Organization.java ``` @XmlRootElement public class Organization { Bank bank = new Bank(); public Bank getBank() { return bank; } public void setBank(Bank bank) { this.bank = bank; } } ``` Bank.java ``` @XmlRootElement public class Bank { private String description; private String externalkey; private String property; //..GETTER and SETTER } ``` How can I get property name and value? Thank u

Original source