2014-01-17 236 views
2

我使用JAXB讀取xml文件。我有以下結構JAXB忽略xml標記屬性

<A> 
    <B value="some string" /> 
</A> 

我有以下型號

@XmlRootElement 
class A{ 
    @XmlElement(name = "B", required = true) 
    @XmlPath("B/@value") 
    String b; 
} 

我讀了我的b實例變量在B標籤值的屬性。

但是在一些XML文件中,我在B標籤之後有結構<#B/> 雖然JAXB解組文件,但我成爲格式不正確的例外。 javax.xml.stream.XMLStreamException:ParseError在[行,列]:[19.4]

回答

1

您應該只是有沒有@XmlElement註解如下:

@XmlRootElement 
class A{ 
    @XmlPath("B/@value") 
    String b; 
} 
+0

這是行不通的。我有一個標記<#B>,但正常的標準是。如果Parser看到標籤<#B/>,他會拋出一個異常 –

+0

@SadikHasan - 你會得到什麼異常? –

+0

javax.xml.bind.UnmarshalException - 帶有鏈接的異常: [異常[EclipseLink-25004](Eclipse持久性服務 - 2.6.0.v20140107-a992a67):org.eclipse.persistence.exceptions.XMLMarshalException 異常說明:An解組文檔時發生錯誤 內部異常:javax.xml.stream.XMLStreamException:ParseError at [row,col]:[19,4]。我發現異常,我可以看到它在解析的地方看到標籤<#B>。 –