当前位置: 首页 > 工具软件 > Ono > 使用案例 >

ono解析html出现乱码,Ono-XML/HTML 解析库

能翔宇
2023-12-01

软件简介

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);

}];

 类似资料: