一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

解析xml文件時,錯誤信息org.xml.sax.SAXParseException:Parser ...

 liang1234_ 2016-05-26

最近一個處理非常大的XML的程序遭遇了如下的異常:

org.xml.sax.SAXParseException:Parser has reached the entity expansion limit '64,000' set by the Application.

(org.xml.sax.SAXParseException: 分析器已達到由應(yīng)用程序設(shè)置的實體擴展限制“64,000”。)

查了查,原來是在單個xml文件中實體引用超過了默認(rèn)值64000個。你用dom和sax解析XML都可能會遇到這個問題,這印證了我的猜測,java的dom是用sax來實現(xiàn)的。

解決方法很簡單,運行Java的時候,加上參數(shù)-DentityExpansionLimit=xxxxx,你也可以在代碼中解析XML前,用代碼設(shè)置這個參數(shù)System.setProperty('entityExpansionLimit', 'xxxxx');。xxxxx代表設(shè)定的單文件實體引用數(shù)最大值。

--------

那么這個xxxxx該怎么選擇呢?

其實也很簡單,選擇你認(rèn)為可能出現(xiàn)的最大值就好了,比你的文件里面的實體數(shù)多,自然就沒問題了。

--------

那么如果你想知道某個文件里面有多少個實體引用該怎么辦呢(放心我肯定不建議你去數(shù))?

對,也很簡單,首先我們知道實體引用都是“&'開頭“;”結(jié)尾,所以我們可以用如下命令來計算:

grep -c '&.*;' yourfile.xml

其實,&在xml里表示為&的形式,所以,一個合法的xml內(nèi),有多少&就有多少實體引用,so,上面的命令效率更高的版本是:

grep -c '&' yourfile.xml

--------

為什么會對最大的實體引用數(shù)做出限制呢?這點我有些疑惑,難道要為解析實體引用準(zhǔn)備緩存空間?但是做出來自動增長的緩存也不是不可能的啊。DentityExpansionLimit參數(shù)的問題是,如果要處理無法預(yù)期大小的xml文件怎么辦?你設(shè)置為100萬,xml文件里面有200萬個實體引用,你有辦法么?

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    搡老妇女老熟女一区二区| 欧美成人免费一级特黄| 东北老熟妇全程露脸被内射| 日本一本不卡免费视频| 久久亚洲国产视频三级黄| 国内真实露脸偷拍视频| 老鸭窝精彩从这里蔓延| 精品香蕉一区二区在线| 这里只有九九热精品视频| 久久99亚洲小姐精品综合| 久热香蕉精品视频在线播放| 青青操视频在线播放免费| 国产精欧美一区二区三区久久| 台湾综合熟女一区二区| 日本人妻丰满熟妇久久| 免费观看潮喷到高潮大叫| 国产综合香蕉五月婷在线| 国产精品欧美激情在线| 欧美一二三区高清不卡| 亚洲精品一区三区三区| 日韩特级黄片免费在线观看| 少妇人妻精品一区二区三区| 自拍偷拍一区二区三区| 亚洲国产精品久久网午夜| 熟妇久久人妻中文字幕| 欧美日本道一区二区三区| 午夜亚洲精品理论片在线观看| 国产一区在线免费国产一区| 欧美日本道一区二区三区| 精品日韩国产高清毛片| 亚洲国产av一二三区| 激情偷拍一区二区三区视频| 午夜精品成年人免费视频| 99久久精品午夜一区二区| 日本午夜乱色视频在线观看| 久久老熟女一区二区三区福利| 久热人妻中文字幕一区二区| 国产福利一区二区三区四区| 91久久国产福利自产拍| 激情图日韩精品中文字幕| 99久久精品国产日本|