您现在的位置是:首页 > 文章详情

XML/HTML 解析库 Ono

日期:2017-06-07点击:276

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 支持 XPath 和 CSS 查询 自动转换的日期和数字值 正确,正常地处理元素和属性的 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); }];

文章转载自 开源中国社区[https://www.oschina.net]

原文链接:https://yq.aliyun.com/articles/115696
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章