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

Biblioteca Swift Gratuita para Analisar e Manipular Dados HTML

Biblioteca Swift de Código Aberto para Análise de HTML/XML que Fornece uma API Swift Limpa para Analisar e Percorrer Documentos HTML e XML com Facilidade.

O que é Kanna?

Se você já desenvolveu um aplicativo Swift que precisa extrair dados de páginas da web, analisar respostas de API em XML ou raspar conteúdo estruturado, provavelmente já se deparou com o desafio de lidar com strings brutas de HTML e XML. A biblioteca padrão do Swift não inclui um analisador nativo e ergonômico para esses formatos, e é aí que o Kanna entra em ação para salvar o dia. No seu núcleo, o Kanna fornece uma API Swift limpa para analisar e percorrer documentos HTML e XML. Por trás dos panos, ele delega o trabalho pesado ao libxml2, o que significa que você obtém desempenho de análise sólido como uma rocha sem precisar reimplementar regras gramaticais complexas por conta própria.

Kanna destaca-se no ecossistema Swift por sua simplicidade e poder. Com sua API intuitiva, você pode navegar e manipular documentos HTML/XML usando métodos de consulta familiares como XPath 1.0 e seletores CSS3. Seja construindo um scraper web, extraindo dados de feeds RSS ou processando arquivos de configuração XML, Kanna fornece as ferramentas necessárias. O suporte multiplataforma é uma das qualidades mais atraentes do Kanna. Ele funciona em macOS, iOS, tvOS, watchOS e até Linux. XPath 1.0 e seletores CSS3 oferecem duas formas poderosas e padrão da indústria para consultar documentos. Seu suporte duplo a seletores CSS3 e XPath 1.0 o torna flexível o suficiente para lidar desde extrações simples de HTML até processamento complexo de XML com namespaces. Seja desenvolvendo um app iOS que consome um feed RSS, um servidor Vapor que coleta preços de concorrentes ou uma ferramenta de linha de comando que transforma dados XML, Kanna oferece os recursos para realizar o trabalho de forma confiável e elegante.

Previous Next

Começando com Kanna

A maneira recomendada e mais fácil de instalar o Kanna é usando CocoaPods. Por favor, use o comando a seguir para uma instalação tranquila.

Instalar Kanna via Carthage

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

// Then run:
$ pod install

Instalar Kanna via CocoaPods


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

Você também pode instalá-lo manualmente; baixe os arquivos da versão mais recente diretamente do repositório GitHub.

Analisando documentos HTML via Swift

A biblioteca de código aberto Kanna inclui suporte para carregar e analisar documentos HTML em aplicações Swift. O caso de uso mais comum para essa análise de HTML, seja ele baixado da web ou construído programaticamente. Aqui está um exemplo simples que mostra como desenvolvedores de software podem usar a função HTML que aceita uma string HTML bruta, codifica‑a e retorna um objeto de documento contendo propriedades como .title e .body que lhes dão acesso rápido a elementos comuns sem precisar de um seletor.

Como analisar HTML usando codificação UTF-8 via Biblioteca Swift?

 import Kanna

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

  
    My Tech Blog
  
  
    

Bem-vindo ao Swift Parsing

Kanna torna a análise de HTML fácil e elegante.

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

Suporte a consultas de seletores CSS3

A biblioteca Kanna incluiu suporte total para seletores CSS3, permitindo que os desenvolvedores usem a sintaxe CSS familiar para encontrar elementos. O suporte a seletores CSS da Kanna permite que você use a mesma sintaxe de seletor que poderia escrever em uma folha de estilo ou no querySelectorAll do JavaScript. Isso a torna muito intuitiva para quem vem de um background de desenvolvimento web. O exemplo a seguir mostra como os usuários podem selecionar elementos HTML e iterar sobre múltiplos elementos dentro de aplicativos Swift.

Como selecionar múltiplos elementos HTML & extrair texto deles via Biblioteca Swift?

import Kanna

let htmlString = """


  
  • Livro Swift $39.99
  • Guia Xcode $24.99
  • Fundamentos 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)") } }

Suporte a consultas XPath 1.0

A biblioteca Kanna inclui suporte para consultas XPath 1.0 em aplicativos Swift. XPath oferece uma forma mais poderosa e flexível de navegar por elementos e atributos em um documento XML/HTML. É particularmente útil para estruturas de documentos complexas. Expressões XPath podem percorrer documentos de maneiras que os seletores CSS não conseguem, como encontrar elementos com base em sua posição, relações pai‑filho ou correspondência de texto complexa. É indispensável para o parsing de XML e raspagem avançada de HTML.

Análise e validação de XML via Swift

Além da análise básica de HTML, a biblioteca de código aberto Kanna oferece recursos robustos de manipulação de XML. Isso inclui validação adequada da estrutura XML e gerenciamento de atributos. Ao trabalhar com dados estruturados, você precisa de mais do que apenas extração de elementos. Kanna fornece acesso completo ao documento XML, incluindo comentários, instruções de processamento e metadados do documento.

Como realizar análise XML dentro de aplicativos 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")
    }
}


 Português