2014-11-01 98 views
4

我需要使用JAXB將我的XML片段映射到Java類,但有一個棘手的情況。我有以下XML:如何使用JAXB將複雜的XML元素映射到Java類屬性

<person> 
    <name part="first">Richard</name> 
    <name part="last">Brooks</name> 
</person> 

,並把它映射到下面的類

public class Person { 

    private String firstName; 
    private String lastName; 
} 

你能幫我找出JAXB註釋,使這可能嗎?

回答

3

你可以用MOXy做到這一點,看到@XmlPath

@XmlPath("name[@part='first']/text()") 
private String firstName; 

@XmlPath("name[@part='last']/text()") 
private String lastName; 

相關問題:

+0

你檢查它在Eclipse中工作嗎? (不適合我) – Fagoter 2014-11-01 21:18:27

+0

不,還沒有,但不是你可以開始的東西嗎?在XPath中可能缺少text()。 – lexicore 2014-11-01 22:10:38

+1

是的,在文本()後,它的作品,謝謝! – Fagoter 2014-11-01 22:21:08

1

這裏是你可以採取,但需要您創建一個單獨的類名稱的一種方法:

@XmlRootElement 
public class Person { 
    @XmlElement(name="name") 
    private List<Name> names; 
    ... 
} 

public class Name { 
    @XmlAttribute 
    private String part; //would be set to "first" or "last" 

    @XmlValue 
    private String nameValue; 
    ... 
} 
+0

同樣,不完全OP想要什麼。 – lexicore 2014-11-01 20:59:08

+0

這個工作,但不完全如何我想,我不需要列表 – Fagoter 2014-11-01 21:17:51

相關問題