Ono (斧)是 iOS & Mac OSX 处理 XML & HTML 的一种明智的方法(解析库)。
XML 在 Cocoa 的支持并不好,NSXMLParser
强制要求繁琐的委托模式,这是非常不方便实现的。 NSXMLDocument
有一点好用,但只能在 Mac OS X 工作, 但占用大量内存。
不管你的 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 详细介绍 Ono (斧)是 iOS & Mac OSX 处理 XML & HTML 的一种明智的方法(解析库)。 XML 在 Cocoa 的支持并不好,NSXMLParser 强制要求繁琐的委托模式,这是非常不方便实现的。 NSXMLDocument 有一点好用,但只能在 Mac OS X 工作, 但占用大量内存。 Ono 使得处理 XML & HTML 像 JSON 一样棒。 不管你的
软件简介 Ono (斧)是 iOS & Mac OSX 处理 XML & HTML 的一种明智的方法(解析库) 。 XML 在 Cocoa 的支持并不好 ,NSXMLParser 强制要求繁琐的委托模式,这是非常不方便实现的。 NSXMLDocument 有一点好用,但只能在 Mac OS X 工作, 但占用大量内存。 Ono 使得处理 XML & HTML 像 JSON 一样棒。 不管你的 ap
最近在研究网页HTML的解析,找了一些支持xpath语法的第三方框架,最后定位到Ono框架,但是官方的使用方法介绍太简单了,导致用的过程中还是踏了不少坑,这里记录一下,有一点介绍一点,直到目前手里的这个项目做完。 这里主要介绍HTML解析相关,XML不涉及。 1.Ono基础用法 #import "Ono.h" NSData *data = ...; NSError *error; ONOXMLDo
步骤一: 添加库:libxml2.2.tbd 步骤二: TARGETS-Build Settings-Header Search Paths中添加“/usr/include/libxml2”和“/usr/include/libresolv” end
问题的原因所在: 1:因为你当前使用的主机是一个单核的主机(不会自动启动); 2:多核上如果不设置-smp enable是不会有什么问题的,因为从OTP R12B开始,如果操作系统报告有多于1个的CPU(或者核心)VM的, SMP版本会自动启动,并且根据CPU或者核心的数量启动同样数量的调度器。 解决的方法:
package org.jixiuf.bean; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinC
HTML5 Boilerplate 默认提供两个 html 页面: index.html 404.html index.html no-js类 no-js 类可以让开发者依据 JavaScript 被启用(.js)或被禁止(.no-js)两种状态,更轻易准确地添加自定义样式。 使用这个技巧也有助于避免浏览器闪烁(FOUC)。 lang 属性 请认真考虑在 <html> 中添加 lang 属性,从而
问题内容: 我正在开发一个从网站上抓取数据的应用程序,我想知道应该如何获取数据。具体来说,我需要包含在使用特定CSS类的许多div标签中的数据-目前(出于测试目的)我只是在检查 在HTML的每一行中-都可以,但是我不禁感到有更好的解决方案。 有什么好方法可以给类添加一行HTML并提供一些好方法,例如: 问题答案: “ JTidy是HTML Tidy的Java端口,HTML Tidy是HTML语法检
前面介绍了很多眼花缭乱的新技术,关于渲染,关于硬件加速,关于布局,关于其他很多,同大家一样,我也花了很多时间来消化它们。本章介绍稍微基础些的话题(本系列的写作顺序完全是随心所欲地),就是在渲染整个过程的初始阶段---HTML解析。不过这不表示它简单,其实这里是非常绕人的。在前面描述渲染过程,其实也是回避了这些方面的很多细节,原因也很简单,我自己也没有完全仔细地了解清楚. :-( 现在又重新阅读和d
本文向大家介绍使用PHP的HTML DOMDocument解析HTML,包括了使用PHP的HTML DOMDocument解析HTML的使用技巧和注意事项,需要的朋友参考一下 可以通过以下代码获取<div>标记内的<div>标记内的文本,其中<div>内的class =“ main”内- 示例 输出结果 这将产生以下输出-
问题内容: 谁能推荐C或Objective-C库进行HTML解析?它需要处理无法完全验证的凌乱的HTML代码。 这样的库是否存在,还是我最好只是尝试使用正则表达式? 问题答案: 看起来像是SDK中附带的,并具有以下特征: 该模块使用与XML解析器兼容的API来实现HTML4.0非验证解析器。即使从规范的角度来看严重损坏,它也应该能够解析“真实世界”的HTML。 这听起来像我所需要的,所以我可能会使
问题内容: 我如何解析包含在PHP变量中的HTML代码,例如: 我只想 获取标题之间的文本, 并且我知道使用正则表达式不是一个好主意。 问题答案: 使用PHP 文档对象模型: 输出为: [编辑]:OP澄清后: 如果您想要类似 Lorem ipsum 的内容 。 等,您可以直接使用此正则表达式: 输出: Lorem ipsum。快速的红狐狸……跳过了懒惰的棕色FROG
问题内容: 我正在尝试解析以下HTML文件,我想获取key的值。这是在Windows Phone的Silverlight上完成的。 有什么想法要从这里去吗? 谢谢 问题答案: 这是一些入门的代码(需要进行错误检查)
问题内容: 如果我们将Apache Web服务器设置为将Apache配置为将 所有 HTML 处理为PHP,是否存在安全性/性能方面的顾虑?我专门指的是: 我当时需要将一些PHP逻辑添加到一些HTML文件中;理想情况下,我不必将文件名更改为(保持的页面排名等)。 这与以下问题有关:httpd AddType指令 编辑: 从下面的现有答案/评论中,社区似乎建议使用重定向或仅针对特定的HTML文件。约