在iphone sdk中使用的XML解析器

时间:2011-02-22 13:08:09

标签: iphone objective-c xcode nsxmlparser

我对iphone开发很新。我正在阅读有关使用NSXMLParser的XML解析的教程。我们可以使用其他解析器来解析XML。我们如何决定使用哪种解析器?

的问候,

7 个答案:

答案 0 :(得分:3)

标准解析器是NSXMLParser或基于c的libxml。但是有很多第三方解析器可用。检查此blog post,其中一些最受欢迎的解析器已经过审核和比较。

答案 1 :(得分:2)

就个人而言,如果您使用的是XML并且可以访问Feed,我会始终将Feed转换为plist格式。这是一种比iPhone更好的格式,可以节省大量的时间和精力。

还有https://github.com/robbiehanson/KissXML可以为您提供与缺少的NSXML类相似的组合。它的完成方式意味着如果苹果曾经将这些类放入iOS sdk中,它就不会发生冲突。

答案 2 :(得分:2)

- (void)connectionDidFinishLoading:(NSURLConnection *)theConnection
{
    [self parseXMLFile:xmlFile];
    unsigned char byteBuffer[[xmlFile length]];
    [xmlFile getBytes:byteBuffer];
    NSLog(@"Output: %s", (char *)byteBuffer);
    NSLog(@"Succeeded! Received %d bytes of data",[xmlFile length]);    
    [xmlFile release];
    xmlFile = [[NSMutableData data] retain];

}


- (void)parseXMLFile:(NSData *)adatok {
    if (adatok != nil) {
        BOOL success;
        if (addressParser) 
            [addressParser release];
        addressParser = [[NSXMLParser alloc] initWithData:adatok];
        [addressParser setDelegate:self];
        [addressParser setShouldResolveExternalEntities:YES];
        success = [addressParser parse]; 

    }
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {  here You enter the node }

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { here you get the content CDDATA}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { here you end node }

希望有所帮助

答案 3 :(得分:2)

这是来自Apple的示例代码。它显示了所有可用的XML解析器之间的区别..

http://developer.apple.com/library/ios/#samplecode/XMLPerformance/Introduction/Intro.html

对于新手来说,这将是真正有用的..随意使用它..

答案 4 :(得分:2)

我发现很多教程和很多关于这个问题的帖子。 有很多教程不起作用!!!!! 我找到了这个 http://gigaom.com/apple/tutorial-build-a-simple-rss-reader-for-iphone/

我想知道NSXMLparser是如何工作的

答案 5 :(得分:0)

如果您要使用HTML,hpple值得一试。它非常易于使用,并且很快就会支持完整的XML。

答案 6 :(得分:0)

检查此链接以获取解析xml解析

NSString *url=@"http://www.lancers.jp/work/search/.rss";

NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
NSDictionary *dict=[XMLReader dictionaryForXMLData:data error:nil];

Click on this link

Demo code of XML