2017-06-14 88 views
2

根据this answer,VTD应该能够解析记录与CDATA。 但是,似乎解析不适用于版本2.13(来自maven回购)和从sourceforge下载的最新2.13.2。通过VTD解析XML与CDATA

这是我使用的测试:

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) 

任何帮助表示赞赏!

+0

修复应该在2.13.2中出去,但其他一些错误修复使我改变了以便2.13.2能够解决最紧迫的xpath评估问题...... CDATA修复会消除2.13.3,以及更多修复程序..您可以去CVS下载修补程序,我将发布一个链接 –

回答

0

看来你缺少结尾>字符...这是需要终止CDATA segement ...督察,它应该是]]>

更新:我做了检查和管理一个快速发布,其中包含修复这个bug在两个地方:一个在VTDGen.java,另一个在VTDGenHuge.java

+0

T hanks,确实我使用了错误的“最小”字符串进行测试。我用正确的XML字符串更新了问题,其中'['和']'出现在CDATA中。这似乎打破了解析。你能验证吗? – Alessia

+0

我刚刚检查过,它的工作原理非常感谢。 – Alessia

+0

感谢您的错误报告! –