【问题标题】:NSXMLParser with multiple delegates具有多个委托的 NSXMLParser
【发布时间】:2011-01-20 08:24:33
【问题描述】:

我正在尝试使用多个 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. 几乎还有物品和物品标签。

我认为这是解析器定义的正​​常原因,但这就是问题所在:

代理有什么方法可以开始解析对应的标签,比如第一个?

提前感谢您的帮助。

塞尔吉奥

【问题讨论】:

  • 为什么要使用多个代表?一个人可以处理 XML 的每一部分
  • 我正在开发用于快速将 XML 转换为 NSObject 的通用委托,或者我正在尝试......

标签: iphone objective-c nsxmlparser


【解决方案1】:

我建议不要使用多个委托,而是使用单个委托并让它按照您认为合适的方式分配工作。

【讨论】:

  • 多个委托是解析 XML 的有效方式。这几乎不能回答他的问题。
  • 他说 NSXMLParser,这就是 NSXMLParser 的工作原理。如果这是一个通用的 XML 解析问题,我会做出不同的回答。
  • NSXMLParser 支持 Apple 文档中记录的多个委托。我认为原始海报正在寻找如何使用它的示例(就此而言,我也是)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多