Kanna(鉋) is an XML/HTML parser for Mac OS X and iOS. (It was formerly known as Swift-HTML-Parser)
It was inspired byNokogiri(鋸).
Open terminal.app and execute sudo xcode-select -switch /Applications/Xcode-beta.app/Contents/Developer
Adding it to your Cartfile
:
github "tid-kijyun/Kanna" "swift3.0"
$(SDKROOT)/usr/include/libxml2
to the "header search paths" field Three means of installation are supported:
0.39 or later
) is required.
Adding it to your Podfile
:
use_frameworks! pod 'Kanna', '~> 1.0.0'
Adding it to your Cartfile
:
github "tid-kijyun/Kanna" ~> 1.0.0
$(SDKROOT)/usr/include/libxml2
to the "header search paths" field $(SRCROOT)/YOUR_PROJECT/Modules
to the "Swift Compiler - Search Paths > Import Paths" field $(SDKROOT)/usr/include/libxml2
to the Search Paths > Header Search Paths
field Note: With manual installation, this library doesn't need to be imported, or namespace-qualified in your code.
import Kanna let html = "<html>...</html>" if let doc = Kanna.HTML(html: html, encoding: NSUTF8StringEncoding) { print(doc.title) // Search for nodes by CSS for link in doc.css("a, link") { print(link.text) print(link["href"]) } // Search for nodes by XPath for link in doc.xpath("//a | //link") { print(link.text) print(link["href"]) } }
let xml = "..." if let doc = Kanna.XML(xml: xml, encoding: NSUTF8StringEncoding) { let namespaces = [ "o": "urn:schemas-microsoft-com:office:office", "ss": "urn:schemas-microsoft-com:office:spreadsheet" ] if let author = doc.at_xpath("//o:Author", namespaces: namespaces) { print(author.text) } }
The MIT License. See the LICENSE file for more infomation.