Kanna(鉋)
Kanna(鉋)是一个跨平台(macOS、iOS、tvOS、watchOS和Linux)的XML/HTML解析器!
它受到Nokogiri(鋸)的启发。
特性
- 支持XPath 1.0进行文档搜索
- 支持CSS3选择器进行文档搜索
- 支持命名空间
- 完整测试套件
Swift 5安装
CocoaPods
将以下内容添加到您的Podfile
文件中
use_frameworks!
pod 'Kanna', '~> 5.2.2'
Carthage
请在您的 Cartfile
中添加以下内容。
github "tid-kijyun/Kanna" ~> 5.2.2
对于 xcode 11.3 及之前的版本,需要以下设置。
- 在项目设置中,将
$(SDKROOT)/usr/include/libxml2
添加到“头文件搜索路径”字段。
Swift Package Manager
- 将 libxml2 安装到您的计算机
// macOS: For xcode 11.3 and earlier, the following settings are required.
$ brew install libxml2
$ brew link --force libxml2
// Linux(Ubuntu):
$ sudo apt-get install libxml2-dev
- 请在您的
Package.swift
中添加以下内容。
// swift-tools-version:5.0
import PackageDescription
let package = Package(
name: "YourProject",
dependencies: [
.package(url: "https://github.com/tid-kijyun/Kanna.git", from: "5.2.2"),
],
targets: [
.target(
name: "YourTarget",
dependencies: ["Kanna"]),
]
)
$ swift build
注意:当构建出问题时,请尝试运行以下命令
// Linux(Ubuntu)
$ sudo apt-get install pkg-config
手动安装
- 将这些文件添加到您的项目中
Kanna.swift
CSS.swift
libxmlHTMLDocument.swift
libxmlHTMLNode.swift
libxmlParserOption.swift
模块 - 在目标设置中,将
$(SDKROOT)/usr/include/libxml2
添加到Search Paths > Header Search Paths
字段。 - 在目标设置中,将
$(SRCROOT)/Modules
添加到Swift Compiler - Search Paths > Import Paths
字段。
Swift 4 的安装方法
Swift 3 的安装方法
概要
import Kanna
let html = "<html>...</html>"
if let doc = try? HTML(html: html, encoding: .utf8) {
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 = try? Kanna.XML(xml: xml, encoding: .utf8) {
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)
}
}
捐赠
如果你喜欢Kanna,请通过GitHub sponsors或PayPal进行捐赠。
用于改进和维护库。
许可证
MIT许可证。有关更多信息,请参阅LICENSE文件。