我对iphone开发很新。我正在阅读有关使用NSXMLParser的XML解析的教程。我们可以使用其他解析器来解析XML。我们如何决定使用哪种解析器?
的问候,
石
答案 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];