2017-06-14 90 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

感謝您的錯誤報告! –