2012-03-26 24 views
0

我正在使用JAXB解析XML流。 此流可能包含HTML格式的數據。 當我解組此XML與JAXB爲無效的HTML內容一樣<BR>沒有結束標籤,<P>等我收到以下錯誤:如何防止Html通過JAXB解析格式化數據

javax.xml.bind.UnmarshalException 
- with linked exception: 
[org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 2987; The element type "BR" must be terminated by the matching end-tag &lt;/BR&gt.] 

at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(Unknown Source) 
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(Unknown Source) 
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unknown Source) 
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(Unknown Source) 
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source) 
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source) 
at arserImpl$JAXPSAXParser.parse(Unknown Source) 

反正是有,通過它我可以防止這種HTML格式化數據解析/驗證或評論XML中的一些數據,這些數據將被視爲純String。
在此先感謝。

回答

0

這是失敗的,因爲它是無效的XML。你最好的解決方案是製作任何產生這個有效XML的產品。

如果您有能力對該文件進行預處理,使其將數據的部分視爲純文本的方法是將其放入CDATA部分。

2

您可以使用類似JTidy的東西將您的輸入變爲有效的XML。