如何在Java中解组包含CDATA中的CDATA节的XML?
我有一个包含CDATA节的XMl,其中包含嵌套的CDATA节。在这种情况下,应该如何进行解组。这在Java中可能吗?如何在Java中解组包含CDATA中的CDATA节的XML?,java,xml,cdata,unmarshalling,Java,Xml,Cdata,Unmarshalling,我有一个包含CDATA节的XMl,其中包含嵌套的CDATA节。在这种情况下,应该如何进行解组。这在Java中可能吗? 提前感谢。您正在寻找JAXB框架。 JAXB代表用于XML绑定的Java体系结构 JAXB object has the capability of Marshaling and UnMarshaling. 这并不复杂。去做吧:) 关于你的问题 您可以通过使用多级类结构来实现这一点。 例如: 假设您有两个类: class A { (@xmlName : CDATA1)
提前感谢。您正在寻找JAXB框架。 JAXB代表用于XML绑定的Java体系结构
JAXB object has the capability of Marshaling and UnMarshaling.
这并不复杂。去做吧:)
关于你的问题
您可以通过使用多级类结构来实现这一点。
例如:
假设您有两个类:
class A
{
(@xmlName : CDATA1)
B obj;
}
class B
{
(@xmlName : CDATA2)
String string;
}
当您在类A的对象上下文中解组时
内部CDATA将出现在obj
的字符串中
希望这有帮助。不,不可能取消对此类文档的打包,因为该文档无效。例如:
<?xml version="1.0" ?>
<foo>
<bar><![CDATA[This should contain a nested cdata, which <![CDATA[Contains another CDATA]]>]]></bar>
</foo>
]]>
无法分析,因为字符序列]]>
只能用于标记CDATA
节的结尾。简而言之,您不能嵌套CDATA
节。你必须想出另一种方法
有关更多信息,请参阅和。我了解JAXB,但真正的问题是是否可以在CDATA中对包含CDATA的XML进行解组。使用SAXParser,我无法这样做,因为它在嵌套CDATA上失败:(Sameer:感谢您的及时回复。即使如此,SAXBuilder在使用build()构建文档时也会引发异常)SAXBuilder@VipinPillai-您能发布您看到的异常吗?一个简单的示例文档将有助于理解您的问题。