1. Tuotteet
  2.   HTML
  3.   Swift
  4.   Kanna
 
  

Ilmainen Swift-kirjasto HTML-datan jäsentämiseen ja muokkaamiseen

Avoimen lähdekoodin HTML/XML-jäsentämiskirjasto Swiftille, joka tarjoaa selkeän Swift-API:n HTML- ja XML-dokumenttien jäsentämiseen ja läpikäymiseen helposti.

Mikä on Kanna?

Jos olet koskaan rakentanut Swift‑sovelluksen, jonka täytyy poimia tietoa verkkosivuilta, jäsentää API‑vastauksia XML‑muodossa tai kaapia rakenteellista sisältöä, olet todennäköisesti törmännyt haasteeseen, kun työskennellään raakojen HTML‑ ja XML‑merkkijonojen kanssa. Swiftin vakio­kirjasto ei sisällä natiivia, ergonomista jäsentäjää näille formaateille, ja juuri tässä Kanna astuu kuvaan pelastamaan tilanteen. Kannan ydin tarjoaa selkeän Swift‑API:n HTML‑ ja XML‑dokumenttien jäsentämiseen ja läpikäymiseen. Sisäisesti se delegoi raskaan työn libxml2:lle, mikä tarkoittaa, että saat vankkaa jäsentämissuorituskykyä ilman, että joudut itse toteuttamaan monimutkaisia kielioppisääntöjä.

Kanna erottuu Swift-ekosysteemissä yksinkertaisuudellaan ja voimallaan. Intuitiivisen API:n avulla voit selata ja muokata HTML-/XML-dokumentteja käyttäen tuttuja kyselymenetelmiä, kuten XPath 1.0 ja CSS3-valitsimia. Olitpa sitten rakentamassa web-scraperia, poimimassa dataa RSS-syötteistä tai käsittelemässä XML-konfiguraatiotiedostoja, Kanna tarjoaa tarvitsemasi työkalut. Monialustatuki on yksi Kannan houkuttelevimmista ominaisuuksista. Se toimii macOS:lla, iOS:lla, tvOS:lla, watchOS:lla ja jopa Linuxilla. XPath 1.0 ja CSS3-valitsimet antavat kaksi tehokasta, alan standardia tapaa kysellä dokumentteja. Sen kaksoistuki sekä CSS3-valitsimille että XPath 1.0:lle tekee siitä riittävän joustavan käsittelemään kaikkea yksinkertaisesta HTML:n poiminnasta monimutkaiseen, nimiavaruuksia hyödyntävään XML-käsittelyyn. Olitpa sitten rakentamassa iOS-sovellusta, joka kuluttaa RSS-syötteen, Vapor-palvelinta, joka kerää kilpailijoiden hinnoittelua, tai komentorivityökalua, joka muuntaa XML-dataa, Kanna antaa sinulle työkalut työn suorittamiseen luotettavasti ja tyylikkäästi.

Previous Next

Kannan aloitus

Suositeltu ja helpoin tapa asentaa Kanna on käyttää CocoaPodsia. Käytä seuraavaa komentoa sujuvaan asennukseen.

Asenna Kanna Carthagen kautta

// add the following line to your Podfile:
use_frameworks! 
pod 'Kanna', '~> 5.2.2'

// Then run:
$ pod install

Asenna Kanna CocoaPodsin kautta


// If you prefer Carthage, add this line to your Cartfile:
github "tid-kijyun/Kanna" ~> 5.2.2

Voit myös asentaa sen manuaalisesti; lataa uusimmat julkaisutiedostot suoraan GitHub-varastosta.

HTML-dokumenttien jäsentäminen Swiftin avulla

Avoimen lähdekoodin Kanna-kirjasto sisältää tuen HTML-dokumenttien lataamiseen ja jäsentämiseen Swift-sovelluksissa. Yleisin käyttötapaus on HTML:n jäsentäminen, olipa se ladattu verkosta tai luotu ohjelmallisesti. Tässä on yksinkertainen esimerkki, joka näyttää, miten ohjelmistokehittäjät voivat käyttää HTML-funktiota, joka hyväksyy raakaa HTML-merkkijonon, koodaa sen ja palauttaa dokumentti-olion, jossa on ominaisuuksia kuten .title ja .body, tarjoten nopean pääsyn yleisiin elementteihin ilman valitsimen tarvetta.

Kuinka jäsentää HTML UTF-8-enkoodauksella Swift‑kirjaston avulla?

 import Kanna

// A sample HTML string representing a webpage
let htmlString = """

  
    My Tech Blog
  
  
    

Tervetuloa Swift-parsaukseen

Kanna tekee HTML-jäsentämisestä helppoa ja eleganttia.

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-valitsimen kyselytuki

Kanna-kirjasto on sisällyttänyt täyden tuen CSS3-valitsimille, mikä mahdollistaa kehittäjien käyttää tuttua CSS-syntaksia elementtien löytämiseen. Kannan CSS-valitsintuki sallii sinun käyttää samaa valitsinsyntaksia, jonka kirjoittaisit tyylitiedostoon tai JavaScriptin querySelectorAll-funktioon. Tämä tekee siitä erittäin intuitiivisen kaikille, jotka tulevat web-kehityksen taustalta. Seuraava esimerkki näyttää, miten käyttäjät voivat valita HTML-elementtejä ja käydä läpi useita elementtejä Swift-sovelluksissa.

Kuinka valita useita HTML‑elementtejä ja poimia tekstiä niistä Swift‑kirjaston avulla?

import Kanna

let htmlString = """


  
  • Swift-kirja $39.99
  • Xcode-opas $24.99
  • iOS-perusteet $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 -kyselytuki

Kanna-kirjasto sisältää tuen XPath 1.0 -kyselyille Swift-sovelluksissa. XPath tarjoaa voimakkaamman ja joustavamman tavan navigoida elementtien ja attribuuttien läpi XML/HTML-dokumentissa. Se on erityisen hyödyllinen monimutkaisille dokumenttirakenteille. XPath-lausekkeet voivat kulkea dokumenttien läpi tavoilla, joihin CSS-valitsimet eivät pysty, kuten löytämällä elementtejä niiden sijainnin, vanhempi-lapsi-suhteiden tai monimutkaisen tekstin vastaavuuden perusteella. Se on korvaamaton XML-parsinnassa ja monimutkaisessa HTML-keräilyssä.

XML-jäsentäminen ja validointi Swiftin avulla

Perus-HTML-parsinnan lisäksi avoimen lähdekoodin Kanna-kirjasto tarjoaa vankat XML-käsittelyominaisuudet. Tämä sisältää oikean XML-rakenteen validoinnin ja attribuuttien hallinnan. Kun työskennellään rakenteellisen datan parissa, tarvitaan muutakin kuin pelkkä elementtien poiminta. Kanna tarjoaa täyden XML-dokumentin pääsyn, mukaan lukien kommentit, prosessointikomennot ja dokumentin metatiedot.

Kuinka suorittaa XML‑jäsentäminen Swift‑sovelluksissa?

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


 Suomen