Ingyenes Swift könyvtár HTML adatok feldolgozásához és manipulálásához
Nyílt forráskódú HTML/XML feldolgozó Swift könyvtár, amely tiszta Swift API-t biztosít a HTML és XML dokumentumok könnyed feldolgozásához és bejárásához.
Mi az a Kanna?
Ha valaha is készítettél egy Swift alkalmazást, amelynek adatot kell kinyernie weboldalakról, XML-ben kell feldolgoznia API-válaszokat, vagy strukturált tartalmat kell kaparni, valószínűleg szembesültél a nyers HTML és XML karakterláncok kezelésének kihívásával. A Swift standard könyvtára nem tartalmaz natív, ergonomikus elemzőt ezekhez a formátumokhoz, ezért lép színre a Kanna, hogy megoldja a problémát. Alapvetően a Kanna tiszta Swift API-t biztosít a HTML és XML dokumentumok elemzéséhez és bejárásához. A háttérben a nehéz munkát a libxml2 végzi, ami azt jelenti, hogy sziklaszilárd elemzési teljesítményt kapsz anélkül, hogy magadnak kellene újraimplementálnod a bonyolult nyelvtani szabályokat.
A Kanna kiemelkedik a Swift ökoszisztémában egyszerűségével és erejével. Intuitív API-jával navigálhat és manipulálhat HTML/XML dokumentumokat ismerős lekérdezési módszerek, például az XPath 1.0 és a CSS3 szelektorok használatával. Akár webkaparót épít, RSS-hírcsatornákból adatot nyer, vagy XML konfigurációs fájlokat dolgoz fel, a Kanna biztosítja a szükséges eszközöket. A platformok közötti támogatás a Kanna egyik legvonzóbb tulajdonsága. macOS, iOS, tvOS, watchOS és még Linux rendszereken is fut. Az XPath 1.0 és a CSS3 szelektorok két erőteljes, iparági szabványú módot kínálnak a dokumentumok lekérdezésére. A CSS3 szelektorok és az XPath 1.0 egyidejű támogatása elég rugalmas ahhoz, hogy a egyszerű HTML kinyeréstől a komplex, névtérrel rendelkező XML feldolgozásig mindent kezeljen. Akár egy iOS alkalmazást épít, amely RSS-hírcsatornát fogyaszt, akár egy Vapor szervert, amely a versenytársak árait kaparja, vagy egy parancssori eszközt, amely XML adatokat alakít át, a Kanna megbízhatóan és elegánsan biztosítja a feladat elvégzéséhez szükséges eszközöket.
Kanna használatának megkezdése
Az ajánlott és legegyszerűbb módja a Kanna telepítésének a CocoaPods használata. Kérjük, használja a következő parancsot a zökkenőmentes telepítéshez.
Kanna telepítése Carthage segítségével
// add the following line to your Podfile:
use_frameworks!
pod 'Kanna', '~> 5.2.2'
// Then run:
$ pod install
Kanna telepítése CocoaPods segítségével
// If you prefer Carthage, add this line to your Cartfile:
github "tid-kijyun/Kanna" ~> 5.2.2
Telepítheti manuálisan is; töltse le a legújabb kiadási fájlokat közvetlenül a GitHub tárolóból.
HTML dokumentumok feldolgozása Swift segítségével
Az nyílt forráskódú Kanna könyvtár támogatást nyújt HTML dokumentumok betöltéséhez és feldolgozásához Swift alkalmazásokban. A HTML feldolgozás leggyakoribb felhasználási esete, legyen az a webről letöltött vagy programozottan előállított. Itt egy egyszerű példa, amely bemutatja, hogyan használhatják a szoftverfejlesztők az HTML függvényt, amely nyers HTML karakterláncot fogad, kódolja, és egy dokumentumobjektumot ad vissza, amely olyan tulajdonságokat tartalmaz, mint a .title és a .body, így gyors hozzáférést biztosít a gyakori elemekhez selector használata nélkül.
Hogyan lehet HTML-t UTF-8 kódolással elemezni Swift könyvtár segítségével?
import Kanna
// A sample HTML string representing a webpage
let htmlString = """
My Tech Blog
Üdvözöljük a Swift Parsingban
A Kanna egyszerűvé és elegánssá teszi a HTML feldolgozást.
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")
}
CSS3 szelektor lekérdezés támogatása
A Kanna könyvtár teljes körű támogatást nyújt a CSS3 szelektorokhoz, lehetővé téve a fejlesztők számára, hogy ismerős CSS szintaxist használjanak az elemek megtalálásához. A Kanna CSS szelektor támogatása lehetővé teszi, hogy ugyanazt a szelektor szintaxist alkalmazd, amit egy stíluslapban vagy a JavaScript querySelectorAll metódusában írnál. Ez nagyon intuitívvá teszi a webfejlesztő háttérrel rendelkező felhasználók számára. Az alábbi példa bemutatja, hogyan választhatnak ki HTML elemeket, és iterálhatnak több elem felett Swift alkalmazásokban.
Hogyan válasszunk ki több HTML elemet, és nyerjünk ki belőle szöveget Swift könyvtár segítségével?
import Kanna
let htmlString = """
-
Swift könyv
$39.99
-
Xcode útmutató
$24.99
-
iOS Alapok
$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)")
}
}
XPath 1.0 lekérdezés támogatása
A Kanna könyvtár támogatja az XPath 1.0 lekérdezéseket Swift alkalmazásokban. Az XPath erőteljesebb és rugalmasabb módot biztosít az elemek és attribútumok navigálására XML/HTML dokumentumokban. Különösen hasznos összetett dokumentumszerkezetek esetén. Az XPath kifejezések olyan módon tudják bejárni a dokumentumokat, amit a CSS szelektorok nem képesek, például elemek megtalálása pozíciójuk, szülő-gyermek kapcsolataik vagy összetett szövegminták alapján. Elengedhetetlen az XML feldolgozáshoz és összetett HTML kaparáshoz.
XML feldolgozás és validálás Swift segítségével
Az alapvető HTML-parszolás mellett a nyílt forráskódú Kanna könyvtár robusztus XML-kezelési képességeket kínál. Ez magában foglalja a megfelelő XML-szerkezet validálását és attribútumkezelést. Strukturált adatokkal dolgozva többre van szükség, mint csak az elemek kinyerése. A Kanna teljes XML-dokumentum hozzáférést biztosít, beleértve a megjegyzéseket, feldolgozási utasításokat és a dokumentum metaadatait.
Hogyan végezzünk XML elemzést Swift alkalmazásokban?
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")
}
}