簡體   English   中英

VTDGen引發ParseException:文件太大

[英]VTDGen throws ParseException: File too big

我正在嘗試使用VTDGen庫解析xml文件。 解析xml是完美的,直到我遇到超過1GB的xml文件的麻煩為止。

這是我如何解析的代碼。

            VTDGen vg = new VTDGen();
            in = new SmbFileInputStream(fileToGet);
            byte[] b = new byte[(int) fileToGet.length()];
            in.read(b);             
            vg.setDoc(b);
            vg.parse(true);

這是我得到的錯誤。

com.ximpleware.ParseException: Other error: file size too big >=1GB 

有什么辦法可以增加大小,還是應該用另一個解析器編寫代碼?

先感謝您。

了解有關VTD的局限性:

  • 各個字段的上限:(1)對於起始標簽(最大Qname長度為2048;前綴512),溢出條件導致解析異常。 對於其他令牌(上限為1M),可能會將一個長令牌分成多個較短的令牌。(2)深度字段溢出條件會導致解析異常。 (3)起始偏移量:當前支持的最大文檔為1G字符(1G字節或2G字節,取決於實際的文檔編碼)。

來自http://vtd-xml.sourceforge.net/userGuide/0.html

有兩種方法可以解決此問題:

  1. 使用擴展的VTD-XML。 它是vtd-xml發行版的一部分,共享非常相似的API,但其本身就是獨立產品。
  2. 關閉名稱空間意識,這會將最大文檔大小從1 GB增加到2GB

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM