FastXmlJava XML 解析器
FastXml是一個簡單、高性能、極少內(nèi)存消耗的基于xml pull機(jī)制的java xml解析器。
性能最好的xml解析器:性能是VTD-XMl的3倍,是XPP3/MXP1的2倍,詳見性能測試數(shù)據(jù)和測試代碼
幾乎不消耗額外的內(nèi)存:內(nèi)存消耗比XPP3/MXP1還要少很多
沒有jar包依賴
jar包大小為18k,非常適合在移動互聯(lián)網(wǎng)領(lǐng)域使用
FastXml的API與XMLPULL類似,但是要更簡單一些,易于使用
支持namespace,但不校驗schema
為什么FastXml這么快
盡可能少的解碼字節(jié):往往xml文檔中的很多字節(jié)都是ASCII范圍,它們可以直接強(qiáng)轉(zhuǎn)成char,而不需要解碼,比如:標(biāo)簽名、屬性名,大部分時候只需要對屬性值和文本塊進(jìn)行解碼即可。
注釋、文檔聲明、DOCTYPE、無用的換行和空白通常不是我們關(guān)注的內(nèi)容,所以這些內(nèi)容自動被FastXml跳過了,使用API時更人性化。
當(dāng)需要把某個屬性值或者文本塊內(nèi)容轉(zhuǎn)換為int、short、long時,不需要先把byte數(shù)組轉(zhuǎn)化成string,然后再轉(zhuǎn)化成int、short、long。FastXml直接把byte數(shù)組轉(zhuǎn)換成對應(yīng)的類型。
如果xml文檔中有些標(biāo)簽內(nèi)容你并不需要時,你可以跳過這些標(biāo)簽,你跳過的這部分將減少了字節(jié)解碼,這在一些場景下能很好的幫助你提升性能。
FastXml類似XMLPULL一樣,不校驗文檔schema和DTD,對文檔的格式也不進(jìn)行非常嚴(yán)格的校驗:通常xml文檔的格式都是正確的,當(dāng)我們追求xml解析的最高性能時,就不需要對格式等內(nèi)容進(jìn)行及其嚴(yán)格的校驗了。FastXml并不是完全沒有校驗,為了追求更好的性能,F(xiàn)astXml只是在解析過程中,對那些必須校驗的地方進(jìn)行校驗。通常大部分的格式錯誤都能被校驗出來。
許可證
