NSXMLParser具有多个委托

时间:2011-01-20 08:24:33

标签: iphone objective-c nsxmlparser

我正在尝试使用多个NSXMLParserDelegate解析器解析xml树文件,但我将在下一期中讨论。

我的XML结构是这样的。

<Object1>
     <Name>Ricky</Name>
     <Surname>Woodstock</Surname>
     <Adress>
          <City>Los Angeles</City>
          <State>California</State>
          <Country>USA</Country>
     </Adress>
     <Items>
          <Item>
               <Id>1</Id>
               <Description>Sports Bag</Description>
               <Price>13.45</Price>
          </Item>
          <Item>
               <Id>2</Id>
               <Description>Baseball Cap</Description>
               <Price>6.90</Price>
          </Item>
     </Items>
     <Total>20.15</Total>
</Object1>

我的问题是,当我更改委托时,它开始解析不在顶级标记中,而是开始在第一个嵌套标记上解析。

例如。

  1. 我开始用解析元素的XMLObject解析器解析XML

  2. 当它到达Adresss标签时,我将委托设置为XMLAdressParser(并将XMLAdressParser的父设置为self以便返回),但XMLAdressParser开始在标签上解析。

  3. 几乎使用Items和Item标签。

  4. 我认为这是Parser定义的正常原因,但问题是:

    委托是否有任何方法可以在Corresponint标签中开始解析,就像第一个一样?

    提前感谢您的帮助。

    塞尔吉奥

1 个答案:

答案 0 :(得分:0)

我建议使用单个代理并让它按照您认为合适的方式分发,而不是使用多个代理。