Ono 介绍
Ono (斧)是 iOS & Mac OSX 处理 XML & HTML 的一种明智的方法(解析库) 。
XML 在 Cocoa 的支持并不好 ,NSXMLParser 强制要求繁琐的委托模式,这是非常不方便实现的。 NSXMLDocument
有一点好用,但只能在 Mac OS X 工作, 但占用大量内存。
Ono 使得处理 XML & HTML 像 JSON 一样棒。
不管你的 app 是否需要 XML-RPC web服务的接口,爬一个网页,或者解析一个 RSS Feed,Ono 会让你的工作更轻松。
特性
-
简单,现代的 API 遵循标准 Objective-C 公约,包括扩展使用块和 NSFastEnumeration
-
极高性能文档解析和遍历, powered by libxml2
-
自动转换的日期和数字值
-
正确,正常地处理元素和属性的 XML 命名空间
-
能够从 Nsstring 或 NSData 加载 HTML 和 XML 文档
-
完整文档
-
全面的测试套件
使用:
#import "Ono.h" NSData *data = ...; NSError *error; ONOXMLDocument *document = [ONOXMLDocument XMLDocumentWithData:data error:&error]; for (ONOXMLElement *element in document.rootElement.children) { NSLog(@"%@: %@", element.tag, element.attributes); } // Support for Namespaces Nsstring *author = [[document.rootElement firstChildWithTag:@"creator" inNamespace:@"dc"] stringValue]; // Automatic Conversion for Number & Date Values NSDate *date = [[document.rootElement firstChildWithTag:@"created_at"] dateValue]; // ISO 8601 Timestamp NSInteger numberOfWords = [[[document.rootElement firstChildWithTag:@"word_count"] numberValue] integerValue]; BOOL isPublished = [[[document.rootElement firstChildWithTag:@"is_published"] numberValue] boolValue]; // Convenient Accessors for Attributes Nsstring *unit = [document.rootElement firstChildWithTag:@"Length"][@"unit"]; NSDictionary *authorAttributes = [[document.rootElement firstChildWithTag:@"author"] attributes]; // Support for XPath & CSS Queries [document enumerateElementsWithXPath:@"//Content" usingBlock:^(ONOXMLElement *element, NSUInteger idx, BOOL *stop) { NSLog(@"%@", element); }];
Ono 官网
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。