XML/HTML 解析库 Ono

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]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值