sax parser 分塊讀取流, 預設為一次讀取2k位元組. (ch 裡面不僅包含元素的值資訊,其實它是整個xml文件的乙個部分,也就是說,分析器每次從文件中讀取2k位元組,放到這個陣列中,然後通過start和 length來劃分出屬於value的部分.這樣的話,不能保證最後乙個元素的值是完全被包含在這個ch中的).
所以我們還是要進行一些額外的操作才能通過 characters(char ch,int start,int length)獲得完整的element value.
parser每次讀取2k位元組去填充ch. 填充順序是從開頭到結尾來覆蓋原有的值, 所以在最後一次讀取文件的時候,可能剩餘部分不足2k,所以就會出現ch 中,前半部分是 文件的末尾部分, 而ch後半部分還有多餘的資訊,這個是倒數第二個ch中未被覆蓋掉的部分。
解決辦法:
宣告乙個stringbuffer在存放節點值
在startelement 或endelement時將stringbuffer置為空
characters作值相加就可以了
XML解析之SAX解析
sax解析 核心類 saxparse ctory saxparser defaulthandler 步驟 建立工廠類例項 saxparse ctory factory saxparse ctory.newinstance 獲取解析器類例項 saxparser parser factory.newsa...
SAX解析xml檔案
public class xmlsaxactivity extends activity class mycontenthandlerlistener implements onclicklistener catch exception e public class downloadhelper c...
xml檔案解析SAX
size large xml檔案解析 xml檔案解析有四種方式,color blue 1.dom生成和解析xml文件 sax是基於事件流的解析 2.sax生成和解析xml文件 基於xml文件樹結構的解析 3.dom4j生成和解析xml文件 4.jdom生成和解析xml color 本文章用第一種方法...