【发布时间】:2023-03-10 13:24:02
【问题描述】:
我对 iphone 开发很陌生。我正在阅读有关使用 NSXMLParser 的 XML 解析的教程。我们可以使用其他解析器来解析 XML。我们如何决定使用哪个解析器?
问候,
石头
【问题讨论】:
标签: iphone objective-c xcode nsxmlparser
我对 iphone 开发很陌生。我正在阅读有关使用 NSXMLParser 的 XML 解析的教程。我们可以使用其他解析器来解析 XML。我们如何决定使用哪个解析器?
问候,
石头
【问题讨论】:
标签: iphone objective-c xcode nsxmlparser
标准解析器是 NSXMLParser 或基于 c 的 libxml。但是有很多 3rd 方解析器可用。查看此blog post,其中一些最流行的解析器进行了审查和比较。
【讨论】:
- (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 }
希望对你有帮助
【讨论】:
这是来自 Apple 的示例代码。它显示了所有可用的 XML 解析器之间的区别..
http://developer.apple.com/library/ios/#samplecode/XMLPerformance/Introduction/Intro.html
对于新手来说真的很有帮助..随意使用..
【讨论】:
我找到了很多关于这个问题的教程和很多帖子。 很多教程都不行!!!! 我找到了这个 http://gigaom.com/apple/tutorial-build-a-simple-rss-reader-for-iphone/
我不明白 NSXMLparser 是如何工作的
【讨论】:
就个人而言,如果您使用 XML 并且可以访问提要,我总是会将提要转换为 plist 格式。这是一种更适合 iPhone 使用的格式,可以为您节省大量时间和精力。
还有https://github.com/robbiehanson/KissXML,它为您提供了与缺少的 NSXML 类类似的构成。它以某种方式完成,这意味着如果苹果确实将这些类放入 iOS sdk 中,它根本不会发生冲突。
【讨论】:
如果您要使用 HTML,hpple 值得一试。它非常易于使用,并且很快将支持完整的 XML。
【讨论】:
检查这个链接解析xml解析
NSString *url=@"http://www.lancers.jp/work/search/.rss";
NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
NSDictionary *dict=[XMLReader dictionaryForXMLData:data error:nil];
【讨论】: