我能夠解析XML文件。但我面臨奇怪的錯誤。我的XML文件格式是這樣的iPhone:NSXMLParser的foundCharacters方法被稱爲多個時間單標籤
<contact>
<contactServiceTag>3B92E6A7-B599-EAE9-1CB7B5592CB8695C</contactServiceTag>
<contactDeletedBoolean>0</contactDeletedBoolean>
<contactLinkStatus>Stored</contactLinkStatus>
<contactName>P4</contactName>
−
<contactEmailAddresses>
<workEmail>[email protected]</workEmail>
<personalEmail/>
<otherEmail/>
</contactEmailAddresses>
<contactLastUpdated>{ts '2010-01-22 10:05:42'}</contactLastUpdated>
<contactPhotoExists>False</contactPhotoExists>
</contact>
分析過程中,當解析器解析contactLastUpdated的元素,然後foundCharacters方法稱爲多時間,它在第一次運行返回值{TS,\ '第二次運行,2010-01-22 10:05:42第三次運行,\'第四次運行,最後是}上次運行。所以我只有最後一個值(})當我調用didEndElement方法。
請建議如何解決這種類型的錯誤
hi jon, foundCharacters方法對於所有其他標記都被調用一次,但爲什麼對於上面指定的標記不會被調用一次。我只想知道這件事。但是appendstring也是一個備用 – Rupesh 2010-01-23 11:39:13
SAX解析器掃描源文本併爲解析器的委託生成這些回調。該實現可能使用固定大小的緩衝區掃描文本,以便它可以具有內存使用的上限。這意味着你會經常得到部分結果。如果你曾經使用unix read(http://www.opengroup.org/onlinepubs/000095399/functions/read.html)函數完成手動文件IO,這與你不應該編寫程序相似得到整個元素的值。你總是需要在緩衝區中構建它們。 – 2010-01-23 21:48:46