转载

[iOS] Kanna:看起来更易用的 HTML/XML 解析器类库

Kanna(鉋)

Kanna(鉋) is an XML/HTML parser for Mac OS X and iOS. (It was formerly known as Swift-HTML-Parser)

It was inspired byNokogiri(鋸).

Features:

  • XPath 1.0 support for document searching
  • CSS3 selector support for document searching
  • Support for namespaces
  • Comprehensive test suite

Installation:

Swift 3.x

Open terminal.app and execute sudo xcode-select -switch /Applications/Xcode-beta.app/Contents/Developer

Carthage

Adding it to your Cartfile :

github "tid-kijyun/Kanna" "swift3.0" 
  1. In the project settings add $(SDKROOT)/usr/include/libxml2 to the "header search paths" field

Swift 2.x

Three means of installation are supported:

CocoaPods

:warning: CocoaPods ( 0.39 or later ) is required.

Adding it to your Podfile :

use_frameworks! pod 'Kanna', '~> 1.0.0' 

Carthage

Adding it to your Cartfile :

github "tid-kijyun/Kanna" ~> 1.0.0 
  1. In the project settings add $(SDKROOT)/usr/include/libxml2 to the "header search paths" field

Manual Installation

  1. Add these files to your project:
    Kanna.swift
    CSS.swift
    libxmlHTMLDocument.swift
    libxmlHTMLNode.swift
    libxmlParserOption.swift
  2. Copy this folder to your project:
    Modules
  3. In the project settings add $(SRCROOT)/YOUR_PROJECT/Modules to the "Swift Compiler - Search Paths > Import Paths" field
  4. In the target settings add $(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.

Synopsis:

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

License:

The MIT License. See the LICENSE file for more infomation.

原文  https://github.com/tid-kijyun/Kanna
正文到此结束
Loading...