2010-09-25 60 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...完成。

如果你真的想成为更强大的,你也可以想如果你的字符串结束前找到了新元素的开始检测到错误情况,假设它实际上是你的一个错误。