如何通过JAXB防止Html格式化数据解析

时间:2012-03-26 10:49:53

标签: java html xml jaxb

我正在使用JAXB来解析XML流。 此流可能包含HTML格式的数据。 当我用jaxb解组这个xml时,无效的html内容如< BR>没有结束标记,< P>等我收到以下错误:

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 </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中的一些数据,这些数据将被视为纯粹的字符串。
提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用JTidy之类的内容将输入转换为有效的XML。

答案 1 :(得分:0)

这是失败的,因为它是无效的XML。您最好的解决方案是制作生产此产品的任何有效XML。

如果您能够预处理此文件,那么将其作为纯文本处理部分数据的方法是将其放在CDATA部分。