如何使用java解析XML中任何标记的CDATA部分中存在的元素标记

时间:2014-11-20 12:17:07

标签: java xml xml-parsing saxparser domparser

我目前正在尝试使用java解析xml文件但是在解析时我无法解析任何元素标记的CDATA部分中存在的标记。在使用DOM或SAX进行解析时,CDATA部分内的整个数据将被解析为文本。

请在没有任何硬编码的情况下提出任何建议。

<Evaluation>
<![CDATA[<evaluation>
<interview ratingtype="0"/>
<item description="Ability to communicate well with others verbally and in writing:" hasrating="True" hascomments="False" /> ............ </item>
 </evaluation> ]]
</Evaluation>

2 个答案:

答案 0 :(得分:2)

CDATA部分是文本节点。所以解析器正确读取它作为单个字符串。 CDATA部分意味着解析器不会对实体进行任何解码。您可以在specification

中详细了解相关信息

如果要将CDATA部分的内容视为XML文档或片段,则需要手动执行此操作 - 换句话说:单独解析它。

答案 1 :(得分:0)

CDATA代表文本节点,如上所述。 将标签保留在CDATA部分内是没有意义的。 CDATA应该用于存储普通字符串。

在这种情况下,解析器不会将和标签解析为元素。