HTML Məlumatlarını Pars etmək və Manipulyasiya etmək üçün Pulsuz Swift Kitabxanası
HTML/XML Parsinqi üçün Açıq Mənbəli Swift Kitabxanası, HTML və XML Sənədlərini Asanlıqla Pars etmək və Gəzinti üçün Təmiz Swift API‑si təqdim edir.
Kanna nədir?
Əgər siz heç vaxt veb səhifələrdən məlumat çıxarmaq, XML-də API cavablarını təhlil etmək və ya strukturlaşdırılmış məzmunu toplamaq üçün Swift tətbiqi yaratmısınızsa, xam HTML və XML sətirləri ilə işləmək çətinliyi ilə qarşılaşmış ola bilərsiniz. Swift‑in standart kitabxanası bu formatlar üçün yerli, rahat parser daxil etmir, burada Kanna gündəmi xilas etmək üçün çıxır. Əsasən, Kanna HTML və XML sənədlərini təhlil etmək və gəzinti üçün təmiz Swift API‑si təqdim edir. Daxili olaraq, o, ağır işi libxml2‑yə həvalə edir, bu da sizə mürəkkəb qrammatika qaydalarını özünüz yenidən tətbiq etmədən möhkəm təhlil performansı verir.
Kanna, sadəliyi və gücü ilə Swift ekosistemində önə çıxır. İntuitiv API‑si sayəsində, XPath 1.0 və CSS3 seçiciləri kimi tanış sorğu metodlarından istifadə edərək HTML/XML sənədlərində naviqasiya edə və onları manipulyasiya edə bilərsiniz. Veb skraperi qurursunuzsa, RSS lentlərindən məlumat çıxarırsınızsa və ya XML konfiqurasiya fayllarını emal edirsinizsə, Kanna ehtiyacınız olan alətləri təqdim edir. Çoxplatformalı dəstək, Kannanın ən cəlbedici xüsusiyyətlərindən biridir. O, macOS, iOS, tvOS, watchOS və hətta Linux üzərində işləyir. XPath 1.0 və CSS3 seçiciləri sənədləri sorğulamaq üçün iki güclü, sənaye standartı üsul təqdim edir. Həm CSS3 seçicilərini, həm də XPath 1.0‑ı dəstəkləməsi, sadə HTML çıxarışından mürəkkəb, ad məkanlı XML emalına qədər hər şeyi idarə etmək üçün kifayət qədər elastik edir. iOS tətbiqi üçün RSS lentini istehlak edirsinizsə, rəqib qiymətlərini skrap edən Vapor serveri yaradırsınızsa və ya XML məlumatlarını çevirməklə məşğul olan komanda xətti aləti hazırlayırsınızsa, Kanna işi etibarlı və zərif şəkildə yerinə yetirmək üçün lazım olan alətləri verir.
Kanna ilə Başlamaq
Kanna-nı quraşdırmağın tövsiyə olunan və ən asan yolu CocoaPods istifadə etməkdir. Zəhmət olmasa, aşağıdakı əmri istifadə edərək sorunsuz quraşdırma edin.
Kanna-nı Carthage vasitəsilə quraşdırın
// add the following line to your Podfile:
use_frameworks!
pod 'Kanna', '~> 5.2.2'
// Then run:
$ pod install
Kanna-nı CocoaPods vasitəsilə quraşdırın
// If you prefer Carthage, add this line to your Cartfile:
github "tid-kijyun/Kanna" ~> 5.2.2
Bunu həmçinin əl ilə quraşdıra bilərsiniz; son buraxılış fayllarını birbaşa GitHub deposundan yükləyin.
Swift vasitəsilə HTML sənədlərinin təhlili
Açıq mənbəli Kanna kitabxanası Swift tətbiqlərində HTML sənədlərini yükləmək və təhlil etmək üçün dəstək əlavə edib. HTML təhlilinin ən yaygın istifadəsi, vebdən yüklənmiş və ya proqram vasitəsilə yaradılmış olsun. Budur sadə bir nümunə ki, proqram inkişaf etdiricilərin xam HTML sətirini qəbul edən, kodlaşdıran və .title və .body kimi xüsusiyyətləri olan sənəd obyektini qaytaran HTML funksiyasını necə istifadə edə biləcəyini göstərir, bu da seçici ehtiyacını aradan qaldıraraq ümumi elementlərə sürətli giriş imkanı verir.
Swift kitabxanası vasitəsilə UTF-8 kodlamasını istifadə edərək HTML necə təhlil etmək olar?
import Kanna
// A sample HTML string representing a webpage
let htmlString = """
My Tech Blog
Swift Parsing-ə xoş gəlmisiniz
Kanna HTML təhlilini asan və zərif edir.
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 seçiciləri sorğulama dəstəyi
Kanna kitabxanası CSS3 seçiciləri üçün tam dəstəyi daxil edib, bu da inkişafçılara tanış CSS sintaksisini istifadə edərək elementləri tapmağa imkan verir. Kannanın CSS seçici dəstəyi sizə stil cədvəlində və ya JavaScript-in querySelectorAll metodunda yaza biləcəyiniz eyni seçici sintaksisini istifadə etməyə imkan verir. Bu, veb inkişafı sahəsində təcrübəsi olan hər kəs üçün çox intuitivdir. Aşağıdakı nümunə istifadəçilərin HTML elementlərini seçib Swift tətbiqlərində bir neçə element üzərində iterasiya etməsini göstərir.
Swift kitabxanası vasitəsilə bir neçə HTML elementini seçmək və ondan mətn çıxarmaq necə olar?
import Kanna
let htmlString = """
-
Swift Kitabı
$39.99
-
Xcode Bələdçisi
$24.99
-
iOS Əsasları
$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 sorğulama dəstəyi
Kanna kitabxanası Swift tətbiqlərində XPath 1.0 sorğularını dəstəkləyir. XPath XML/HTML sənədində elementlər və atributlar arasında naviqasiya etmək üçün daha güclü və çevik bir yol təqdim edir. Bu, xüsusilə mürəkkəb sənəd strukturları üçün faydalıdır. XPath ifadələri, CSS seçicilərinin edə bilmədiyi şəkildə, məsələn, elementləri mövqeyinə, valideyn-uşaq əlaqələrinə və ya mürəkkəb mətn uyğunluğuna əsaslanaraq tapmaqla sənədləri keçə bilər. XML parsing və mürəkkəb HTML skreypinqi üçün bu, əvəzolunmazdır.
Swift vasitəsilə XML təhlili və doğrulama
Əsas HTML təhlilindən daha irəli, açıq mənbəli Kanna kitabxanası güclü XML işləmə imkanları təklif edir. Bu, düzgün XML strukturu doğrulaması və atribut idarəçiliyini əhatə edir. Strukturlaşdırılmış məlumatlarla işləyərkən yalnız element çıxarışından daha çoxuna ehtiyacınız var. Kanna şərhlər, işləmə təlimatları və sənəd meta məlumatları daxil olmaqla tam XML sənədinə giriş imkanı verir.
Swift tətbiqlərində XML təhlilini necə həyata keçirmək olar?
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")
}
}