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

Bibliotecă Swift gratuită pentru analizarea și manipularea datelor HTML

Bibliotecă Swift open source pentru analizarea HTML/XML care oferă un API Swift curat pentru analizarea și parcurgerea documentelor HTML și XML cu ușurință.

Ce este Kanna?

Dacă ați construit vreodată o aplicație Swift care trebuie să extragă date din pagini web, să parseze răspunsuri API în XML sau să colecteze conținut structurat, probabil că v-ați confruntat cu provocarea de a lucra cu șiruri brute de HTML și XML. Biblioteca standard a Swift nu include un parser nativ și ergonomic pentru aceste formate, iar aici intervine Kanna pentru a salva situația. În esență, Kanna oferă o API Swift curată pentru parsarea și traversarea documentelor HTML și XML. În spatele scenei, delegă sarcinile grele către libxml2, ceea ce înseamnă că obțineți performanță de parsare solidă fără să reimplementați regulile gramaticale complexe.

Kanna se remarcă în ecosistemul Swift prin simplitatea și puterea sa. Cu API-ul său intuitiv, poți naviga și manipula documente HTML/XML utilizând metode de interogare familiare, cum ar fi XPath 1.0 și selectorii CSS3. Indiferent dacă construiești un scraper web, extragi date din fluxuri RSS sau procesezi fișiere de configurare XML, Kanna oferă instrumentele de care ai nevoie. Suportul cross-platform este una dintre cele mai atractive calități ale lui Kanna. Rulează pe macOS, iOS, tvOS, watchOS și chiar pe Linux. XPath 1.0 și selectorii CSS3 îți oferă două modalități puternice și standard în industrie pentru a interoga documente. Suportul său dublu pentru selectorii CSS3 și XPath 1.0 îl face suficient de flexibil pentru a gestiona totul, de la extragerea simplă a HTML-ului până la procesarea complexă a XML-ului cu spații de nume. Indiferent dacă dezvolți o aplicație iOS care consumă un flux RSS, un server Vapor care extrage prețuri ale concurenților sau un instrument în linia de comandă care transformă date XML, Kanna îți pune la dispoziție instrumentele necesare pentru a finaliza sarcina în mod fiabil și elegant.

Previous Next

Începeți cu Kanna

Cea recomandată și cea mai ușoară metodă de a instala Kanna este utilizarea CocoaPods. Vă rugăm să folosiţi comanda următoare pentru o instalare fără probleme.

Instalați Kanna prin Carthage

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

// Then run:
$ pod install

Instalați Kanna prin CocoaPods


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

De asemenea, o puteţi instala manual; descărcaţi fişierele ultimei versiuni direct din depozitul GitHub.

Analiza documentelor HTML prin Swift

Biblioteca open source Kanna include suport pentru încărcarea şi parsarea documentelor HTML în aplicaţiile Swift. Cel mai comun caz de utilizare pentru această parsare HTML, fie că este descărcată de pe web, fie că este construită programatic. Iată un exemplu simplu care arată cum dezvoltatorii pot folosi funcţia HTML care acceptă un şir HTML brut, îl codifică şi returnează un obiect document care conţine proprietăţi precum .title şi .body, oferindu-le acces rapid la elementele comune fără a avea nevoie de un selector.

Cum să parsați HTML utilizând codificarea UTF-8 prin biblioteca Swift?

 import Kanna

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

  
    My Tech Blog
  
  
    

Bun venit la Swift Parsing

Kanna face parsarea HTML uşoară şi elegantă.

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

Suport pentru interogarea selectorilor CSS3

Biblioteca Kanna a inclus suport complet pentru selectorii CSS3, permițând dezvoltatorilor să folosească sintaxa CSS familiară pentru a găsi elemente. Suportul pentru selectorii CSS al Kanna permite utilizarea aceleiași sintaxe de selector pe care ați putea să o scrieți într-o foaie de stil sau în querySelectorAll din JavaScript. Acest lucru îl face foarte intuitiv pentru oricine provine dintr-un background de dezvoltare web. Exemplul următor arată cum utilizatorii pot selecta elemente HTML și pot itera peste mai multe elemente în aplicațiile Swift.

Cum să selectați mai multe elemente HTML & să extrageți textul din ele prin biblioteca Swift?

import Kanna

let htmlString = """


  
  • Carte Swift $39.99
  • Ghid Xcode $24.99
  • Fundamente 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)") } }

Suport pentru interogarea XPath 1.0

Biblioteca Kanna include suport pentru interogări XPath 1.0 în aplicațiile Swift. XPath oferă o modalitate mai puternică și mai flexibilă de a naviga prin elemente și atribute într-un document XML/HTML. Este deosebit de util pentru structuri de documente complexe. Expresiile XPath pot traversa documentele în moduri pe care selectorii CSS nu le pot, cum ar fi găsirea elementelor în funcție de poziția lor, relațiile părinte-copil sau potrivirea complexă a textului. Este indispensabil pentru parsarea XML și pentru scraping-ul complex de HTML.

Analiza și validarea XML prin Swift

Dincolo de parsarea de bază a HTML-ului, biblioteca open source Kanna oferă capabilități robuste de manipulare a XML-ului. Aceasta include validarea corectă a structurii XML și gestionarea atributelor. Când lucrezi cu date structurate, ai nevoie de mai mult decât simpla extragere a elementelor. Kanna oferă acces complet la documentele XML, inclusiv comentarii, instrucțiuni de procesare și metadatele documentului.

Cum să efectuați parsarea XML în aplicațiile 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")
    }
}


 Română