如何在Java中解组包含CDATA中CDATA部分的XML?

时间:2013-12-02 13:44:12

标签: java xml cdata unmarshalling

我有一个包含CDATA部分的XMl,其中包含嵌套的CDATA部分。在这种情况下,如何进行解组。这在Java中可行吗? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您正在寻找JAXB框架。 JAXB代表用于XML绑定的Java体系结构。

JAXB object has the capability of Marshaling and UnMarshaling. 

这并不复杂。去吧:))

根据您的问题,

你可以通过拥有多级类结构来实现。 对于Eg:

假设您有两个类:

class A
{
  (@xmlName : CDATA1)
  B obj;
}

class B
{
  (@xmlName : CDATA2)
  String string;
}

当你在A类对象的上下文中解组时。

内部CDATA将会出现在string的{​​{1}}成员中。

希望这有帮助。

答案 1 :(得分:0)

不,不可能解组此类文档,因为该文档无效。例如:

<?xml version="1.0" ?>
<foo>
  <bar><![CDATA[This should contain a nested cdata, which <![CDATA[Contains another CDATA]]>]]></bar>
</foo>

无法解析,因为字符序列]]>只能用于标记CDATA部分的结尾。简而言之,您无法嵌套CDATA个部分。你必须找出另一种方法。

有关详细信息,请参阅wikipedia articlethis question and answers