// the find
mattt/Ono
A sensible way to deal with XML & HTML for iOS & macOS
Ono is an Objective-C wrapper around libxml2 that gives you a DOM-style API for parsing XML and HTML on iOS/macOS, with both XPath and CSS selector support. It's aimed at anyone who needs to scrape a page or parse a feed without wrestling with NSXMLParser's SAX callbacks or dragging in a whole HTML engine.
Sitting directly on libxml2 means parsing and querying are fast — this isn't a pure-Objective-C tree walker reinventing an XML parser. Supporting both XPath and CSS queries in the same API is genuinely convenient since most scraping tasks are easier expressed as CSS selectors than XPath. The namespace handling for elements and attributes is called out specifically and matters a lot for real-world feeds (Atom, RSS with Dublin Core extensions) where naive parsers choke.
Last commit was April 2020 — over five years stale, no Swift Package Manager support, and CocoaPods (the only install method documented) is itself in decline. The stated minimum requirements are iOS 5 and macOS 10.7, which signals nobody has touched the deployment target or tested against a modern Xcode/SDK in years; it may not even build cleanly on current toolchains. It's Objective-C only under the hood with a thin Swift veneer, so you inherit manual memory semantics and a bridging layer for what should be a modern Swift-native problem. For anyone starting fresh today, Apple's own XMLDocument/XMLParser or a maintained Swift package for HTML (like SwiftSoup) is the safer bet unless you're already deep in an Objective-C codebase.