2014-10-01 118 views
2

這裏是我試圖來解讀XML:解組XML元素與標籤名

<eveapi version="2" zkbapi="1"> 
    <result> 
    <rowset name="events"> 
     <row eventID="41551776" solarSystemID="30003069"> 
     <pilot characterID="1803362092"/> 
     <rowset name="copilots"> 
      <row characterID="914916227"/> 
      <row characterID="877714973"/> 
     </rowset> 
     <rowset name="items"> 
      <row typeID="31055"/> 
      <row typeID="2048"/> 
     </rowset> 
     </row> 
    </rowset> 
    </result> 
</eveapi> 

我在解組兩名集標籤副駕駛員和項目的問題(對象是解組後空)。另外,我無法控制架構。以下是表示eveapi/result/rowset/row級別標籤的類。事件由jaxb實例化。飛行員很好。但我不能讓copilots和項目工作,他們都是空的。

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlRootElement(name = "row") 
public class Event { 

    @XmlElement(name = "pilot") 
    Pilot pilot; 

    @XmlPath("rowset[@name='copilots']") 
    Copilots copilots; 

    @XmlPath("rowset[@name='items']") 
    Items items; 

是我在做什麼?謝謝!

回答

1

要使用@XmlPath註釋,您需要確保您使用的是EclipseLink JAXB (MOXy)作爲JAXB提供程序。要做到這一點,你需要擁有的EclipseLink你的類路徑和jaxb.properties文件在同一個包您的域模型如下條目:

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory 

欲瞭解更多信息,請參見我的博客以下職位:

+1

滑稽,我脫脂你的 「映射到元基於屬性值」,徹底MISSE d需要jaxb.properties文件中的部分。這是深夜。一旦我添加它,一切都很好。非常感謝。和偉大的博客,順便說一句。 – 2014-10-01 15:59:50