2013-02-21 38 views
4

這是我的XML來獲取XML屬性:如何使用JAXB

<?xml version="1.0" encoding="UTF-8" ?> 
    <organization> 
     <bank> 
     <description>aaa</description> 
     <externalkey>123</externalkey> 
     <property name="pName" value="1234567890" /> 
     </bank> 
    </organization> 

我使用JAXB和解組對這個XML,我可以得到說明和externalkey。但我無法獲得有價值的物業名稱。

  • 這是我和解組Java類:

    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 
    } 
    

    我怎樣才能獲得屬性名和價值è?感謝ü

+1

顯示您的組織類 – BobTheBuilder 2013-02-21 10:39:45

回答

5

銀行

您需要從Stringproperty屬性更改爲一個域對象。

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

物業

然後你Property物體看起來是這樣的:

@XmlAccessorType(XmlAccessType.FIELD) 
public class Property { 

    @XmlAttribute 
    private String name; 

    @XmlAtrribute 
    private String value; 

} 
+1

感謝ü我解決這個問題。 – kamal 2013-02-21 11:01:53

+0

我可以使用org.getBank()。getProperty()。getName()獲取屬性名稱和值。我怎樣才能得到像這樣的道具價值:org.getBank()。getProperty()。getValue(「pName」) – kamal 2013-02-21 11:08:36

+0

@kamal - 您正在尋找屬性來對應一個java.util.Map? – 2013-02-21 11:12:06