Bibliothèque Swift gratuite pour analyser et manipuler des données HTML
Bibliothèque Swift open source d'analyse HTML/XML qui fournit une API Swift claire pour analyser et parcourir les documents HTML et XML en toute simplicité.
Qu'est-ce que Kanna ?
Si vous avez déjà créé une application Swift qui doit extraire des données de pages web, analyser des réponses d'API en XML, ou extraire du contenu structuré, vous avez probablement rencontré le défi de travailler avec des chaînes HTML et XML brutes. La bibliothèque standard de Swift n'inclut pas de parseur natif et ergonomique pour ces formats, c'est là que Kanna intervient pour sauver la mise. Au cœur de Kanna, une API Swift claire pour analyser et parcourir les documents HTML et XML. En interne, elle délègue le travail lourd à libxml2, ce qui vous offre des performances d'analyse solides sans avoir à réimplémenter vous-même des règles grammaticales complexes.
Kanna se démarque dans l'écosystème Swift par sa simplicité et sa puissance. Grâce à son API intuitive, vous pouvez parcourir et manipuler des documents HTML/XML en utilisant des méthodes de requête familières telles que XPath 1.0 et les sélecteurs CSS3. Que vous construisiez un scraper web, extrayiez des données de flux RSS ou traitiez des fichiers de configuration XML, Kanna fournit les outils dont vous avez besoin. La prise en charge multiplateforme est l'une des qualités les plus attrayantes de Kanna. Elle fonctionne sur macOS, iOS, tvOS, watchOS et même Linux. XPath 1.0 et les sélecteurs CSS3 vous offrent deux moyens puissants et standards de l'industrie pour interroger les documents. Son double support à la fois des sélecteurs CSS3 et d'XPath 1.0 le rend suffisamment flexible pour gérer tout, de l'extraction HTML simple au traitement XML complexe avec espaces de noms. Que vous développiez une application iOS qui consomme un flux RSS, un serveur Vapor qui récupère les prix des concurrents, ou un outil en ligne de commande qui transforme des données XML, Kanna vous donne les outils pour accomplir la tâche de manière fiable et élégante.
Premiers pas avec Kanna
La méthode recommandée et la plus simple pour installer Kanna est d'utiliser CocoaPods. Veuillez utiliser la commande suivante pour une installation fluide.
Installer Kanna via Carthage
// add the following line to your Podfile:
use_frameworks!
pod 'Kanna', '~> 5.2.2'
// Then run:
$ pod install
Installer Kanna via CocoaPods
// If you prefer Carthage, add this line to your Cartfile:
github "tid-kijyun/Kanna" ~> 5.2.2
Vous pouvez également l'installer manuellement ; téléchargez les fichiers de la dernière version directement depuis le dépôt GitHub.
Analyse de documents HTML avec Swift
La bibliothèque open source Kanna inclut le support du chargement et de l'analyse de documents HTML dans les applications Swift. Le cas d'utilisation le plus courant pour cette analyse HTML, qu'il s'agisse de documents téléchargés depuis le web ou construits programmaticalement. Voici un exemple simple qui montre comment les développeurs peuvent utiliser la fonction HTML qui accepte une chaîne HTML brute, l'encode et renvoie un objet document contenant des propriétés telles que .title et .body, leur offrant un accès rapide aux éléments courants sans avoir besoin d'un sélecteur.
Comment analyser le HTML en utilisant l'encodage UTF-8 via la bibliothèque Swift ?
import Kanna
// A sample HTML string representing a webpage
let htmlString = """
My Tech Blog
Bienvenue à Swift Parsing
Kanna rend l'analyse HTML facile et élégante.
View on GitHub
"""
// Parse the HTML string using UTF-8 encoding
if let doc = try? HTML(html: htmlString, encoding: .utf8) {
// Access the document title directly via a convenience property
print(doc.title ?? "No title found")
// Output: My Tech Blog
// Access the full body text
print(doc.body?.text ?? "No body")
}
Prise en charge des requêtes de sélecteurs CSS3
La bibliothèque Kanna inclut une prise en charge complète des sélecteurs CSS3, permettant aux développeurs d'utiliser la syntaxe CSS familière pour trouver des éléments. La prise en charge des sélecteurs CSS de Kanna vous permet d'utiliser la même syntaxe de sélecteur que vous pourriez écrire dans une feuille de style ou dans la méthode querySelectorAll de JavaScript. Cela la rend très intuitive pour toute personne issue du développement web. L'exemple suivant montre comment les utilisateurs peuvent sélectionner des éléments HTML et itérer sur plusieurs éléments dans les applications Swift.
Comment sélectionner plusieurs éléments HTML et en extraire le texte via la bibliothèque Swift ?
import Kanna
let htmlString = """
-
Livre Swift
$39.99
-
Guide Xcode
$24.99
-
Fondamentaux iOS
$49.99
"""
if let doc = try? HTML(html: htmlString, encoding: .utf8) {
// Select all elements with class "product" inside a "ul"
for product in doc.css("ul.product-list li.product") {
// Extract text from nested span elements using child selectors
let name = product.css("span.name").first?.text ?? "Unknown"
let price = product.css("span.price").first?.text ?? "N/A"
// Access HTML attributes using subscript notation
let productId = product["data-id"] ?? "No ID"
print("[\(productId)] \(name) — \(price)")
}
}
Prise en charge des requêtes XPath 1.0
La bibliothèque Kanna inclut la prise en charge des requêtes XPath 1.0 dans les applications Swift. XPath offre une méthode plus puissante et flexible pour naviguer à travers les éléments et les attributs d'un document XML/HTML. Elle est particulièrement utile pour les structures de documents complexes. Les expressions XPath peuvent parcourir les documents de manières que les sélecteurs CSS ne peuvent pas, comme trouver des éléments en fonction de leur position, des relations parent-enfant ou des correspondances de texte complexes. Elle est indispensable pour l'analyse XML et le scraping HTML avancé.
Analyse et validation XML avec Swift
Au-delà de l'analyse HTML de base, la bibliothèque open source Kanna offre des capacités robustes de gestion XML. Cela inclut la validation correcte de la structure XML et la gestion des attributs. Lors du travail avec des données structurées, vous avez besoin de plus que la simple extraction d'éléments. Kanna fournit un accès complet aux documents XML, y compris les commentaires, les instructions de traitement et les métadonnées du document.
Comment effectuer l'analyse XML dans les applications Swift ?
import Kanna
let xmlString = """
Swift Developer News
-
Kanna 6.0 Released with Swift 6 Support
Alex Johnson
Mon, 26 Jun 2024 00:00:00 GMT
-
New Features in Swift 5.10
Maria Garcia
Tue, 15 Apr 2024 00:00:00 GMT
"""
if let doc = try? Kanna.XML(xml: xmlString, encoding: .utf8) {
// Define a namespace mapping: prefix -> URI
// The prefix you use here ("dc") can be anything; it maps to the namespace URI
let namespaces = [
"dc": "http://purl.org/dc/elements/1.1/"
]
// Query elements in the "dc" namespace using the prefix
for item in doc.xpath("//item", namespaces: namespaces) {
let title = item.at_xpath("title")?.text ?? "No title"
let creator = item.at_xpath("dc:creator", namespaces: namespaces)?.text ?? "Unknown"
let pubDate = item.at_xpath("pubDate")?.text ?? "No date"
print("Title: \(title)")
print("Author: \(creator)")
print("Published: \(pubDate)\n")
}
}