NSXMLParser处理复杂的信息单元

时间:2011-12-02 09:54:46

标签: nsxmlparser

我正在使用NSXMLParser成功处理来自服务器的响应。

像这样的东西

<data>
<company id="">
 <name>XXX</name>
 <latitude></latitude>
 <longitude></longitude>
</company>
<company id="">
 <name>XXX</name>
 <latitude></latitude>
 <longitude></longitude>
</company>
</data>

我一直在使用下一个方法

  • didStartElement:namespaceURI:...要检测新公司何时需要解析,然后我分配一个新实例。并且,检测属性何时开始
  • foundCharacters:处理每个属性的内容
  • didEndElement:...公司已经完全解析,可以添加到内部列表中。此外,检测何时处理了属性,然后设置在foundCharacters:method
  • 上处理的值

现在,我还需要为一家公司获取完整的XML,并将其存储在本地缓存中,任何人都知道是否有任何方法使用NSXMLParser来获取一家公司的所有内容?或者可能没有使用NSXMLParser。不知道。

<company id="">
 <name>XXX</name>
 <latitude></latitude>
 <longitude></longitude>
</company>

谢谢,

1 个答案:

答案 0 :(得分:1)

最后我决定重新创建XML,使用SAX方法

<强>解析器:didStartElement:

// Adding the initial TAG of the xml
accountXML = [[NSString alloc] initWithFormat:@"<%@", elementName];
for (NSString *key in [attributeDict allKeys]){
    accountXML = [accountXML stringByAppendingFormat:@" %@=\"%@\"", key
                  , [attributeDict valueForKey:key]];
}
accountXML = [accountXML stringByAppendingString:@">\n"];

<强>解析器:didEndElement:

// Add the xml to the account and release it
accountXML = [accountXML stringByAppendingFormat:@"</%@>\n", elementName];
[account setCompleteXML:accountXML];