【问题标题】:iphone xml parsing issueiphone xml解析问题
【发布时间】:2011-02-10 10:25:20
【问题描述】:

我正在尝试为我的 iphone 应用程序完成 XML 解析。但是我遇到了一个错误:

XMLParser *xParser = [[XMLParser alloc] initWithContentsofURL:@" http://myimgurl.com/iphoneappimages.xml";];

[xParser setParseItem:@"image"];

[xParser startParse]; 

NSArray *arrItems = [xParser objectForKey:@"image"];

得到错误 - 'XMLParser' may not respond to '-objectForKey:' - 在最后一行。

这里有什么问题?

谢谢。

【问题讨论】:

  • 什么是 XMLParser 类?
  • objectForKey 是一种通常来自NSDictionary 系列的方法。如果XMLParser 不是它的后代,那么您将遇到麻烦。给我们更多信息,我认为我们可以很快解决这个问题:)
  • code@interface XMLParser : NSObject { NSMutableDictionary dicStories; NSMutableDictionary *dicDummy; NSMutableString *strBuff; NSXMLParser *xmlParser; NSString *parseItem; } @property (nonatomic, readonly) NSMutableDictionary *dicStories; @property (nonatomic, 保留) NSString *parseItem; @property (nonatomic, 保留) NSXMLParser *xmlParser; -(id)initWithFileName:(NSString *)strFileName; -(id)initWithContentsofURL:(NSString)strURL; -(无效)开始解析; @endcode - XMLParser 接口如上

标签: iphone xml xcode xml-parsing


【解决方案1】:

来自苹果的类参考:

NSXMLParser 通知它的委托 关于项目(元素,属性, CDATA 块、cmets 等) 它在处理一个 XML 文档。它本身并不做 任何带有这些解析项目的东西 除了举报他们。

您需要将您的类设为 NSXMLParserDelegate 并使用这些(和其他)委托方法:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

【讨论】:

    猜你喜欢
    • 2011-10-13
    • 2012-09-28
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多