根据这个答案,VTD应该能够解析CDATA
记录。但是,解析似乎不适用于版本2.13(来自maven repo(和从sourceforge下载的最新2.13.2。
这是我正在使用的测试:
private String xmlCDATA = "<p><![CDATA[ [Hello [World]] ! ]]></p>" ;";
@Test
public void testCDATA() throws Exception {
VTDGen vg = new VTDGen();
vg.setDoc(xmlCDATA.getBytes());
vg.parse(false);
}
我得到的例外是:
com.ximpleware.ParseException: Error in CDATA: Invalid termination sequence
Line Number: 1 Offset: 27
at com.ximpleware.VTDGen.process_cdata(VTDGen.java:3092)
at com.ximpleware.VTDGen.parse(VTDGen.java:2640)
任何帮助不胜感激!
看来你缺少尾随的>字符...这是终止 CDATA 隔离所必需的...哎呀,应该是]]>
更新:我做了一个检查并管理了一个快速版本,其中包含两个地方对此错误的修复:一个在VTDGen.java中,另一个在VTDGenHuge中.java