2010-09-25 46 views
0

我有一些XML,看起來像這樣:NSXMLParser是否吃空白值?

<?xml version='1.0'?> 
<methodResponse> 
    <params> 
     <param> 
      <value><array><data> 
       <value><array><data> 
        <value><dateTime.iso8601>20100508T14:49:56</dateTime.iso8601></value> 
        <value><string></string></value> 
        <value><string>comment</string></value> 
        <value><string></string></value> 
        <value><string>Milestone milestone1 deleted</string></value> 
        <value><int>1</int></value> 
       </data></array></value> 
      </data></array></value> 
     </param> 
    </params> 
</methodRepsonse> 

的NSXMLParser似乎不會給任何數據回導致與4個項目組成的數組中的它,而不是6

空白值是否有什麼我可以做的NSXMLParser,使其返回一個空字符串爲空值,以便返回時,我可以保持數據的順序?

回答

0

不太清楚我在這裏明白你的問題。 NSXMLParser至少會報告元素的開始和結束。難道這不足以讓他們按照正確的順序嗎?

1

於是掀起了剛剛打印出的解析我沒有看到任何東西錯了什麼東西被解析的過程中所發生的事情委託一個快速的樣品後。

但我懷疑你是否依賴於調用didStartElement...didEndElement...之間的不正確期望,你應該得到一個空字符串調用foundCharacters...?我的問題是基於你問題題目的方式,因爲沒有「空白價值」這樣的東西。要麼有價值,要麼沒有價值。

想象而不是你的XML包含<串/ >而不是完全等同<串> < /串>。您仍然收到開始/結束通知。

你應該創建NSMutableStringdidStartElement...時<串>發現(大概是您使用您的<字符串>元素類型),追加到該字符串IF foundCharacters...被稱爲(它可以被調用超過一旦在塊的值),並將其扔進你的數組時,它的上didEndElement...完成。

如果你真的想成爲更強大的,你也可以想如果你的字符串結束前找到了新元素的開始檢測到錯誤情況,假設它實際上是你的一個錯誤。