1. Ürün:% s
  2.   HTML
  3.   Swift
  4.   Kanna
 
  

HTML Verilerini Ayrıştırmak ve Manipüle Etmek için Ücretsiz Swift Kütüphanesi

HTML/XML Ayrıştırma için Açık Kaynak Swift Kütüphanesi, HTML ve XML Belgelerini Kolaylıkla Ayrıştırmak ve Dolaşmak için Temiz bir Swift API'si sunar.

Kanna Nedir?

Eğer web sayfalarından veri çıkarmak, XML'de API yanıtlarını ayrıştırmak veya yapılandırılmış içeriği kazımak zorunda olan bir Swift uygulaması geliştirdiyseniz, ham HTML ve XML dizeleriyle çalışmanın zorluğuyla karşılaşmış olabilirsiniz. Swift'in standart kütüphanesi bu formatlar için yerel, ergonomik bir ayrıştırıcı içermez; işte Kanna burada devreye girerek sorunu çözer. Temel olarak, Kanna HTML ve XML belgelerini ayrıştırmak ve dolaşmak için temiz bir Swift API'si sunar. Arkasında, ağır işi libxml2'ye devreder, bu da karmaşık dilbilgisi kurallarını kendiniz yeniden uygulamadan sağlam bir ayrıştırma performansı elde etmenizi sağlar.

Kanna, Swift ekosisteminde sadeliği ve gücüyle öne çıkar. Sezgisel API'si sayesinde, XPath 1.0 ve CSS3 seçicileri gibi tanıdık sorgulama yöntemlerini kullanarak HTML/XML belgelerini gezebilir ve manipüle edebilirsiniz. Web kazıyıcı oluşturuyor, RSS beslemelerinden veri çıkarıyor ya da XML yapılandırma dosyalarını işliyor olun, Kanna ihtiyacınız olan araçları sunar. Çapraz platform desteği, Kanna'nın en çekici özelliklerinden biridir. macOS, iOS, tvOS, watchOS ve hatta Linux üzerinde çalışır. XPath 1.0 ve CSS3 seçicileri, belgelere sorgu yapmanın iki güçlü, endüstri standardı yolunu sunar. Hem CSS3 seçicileri hem de XPath 1.0 desteği, basit HTML çıkarımından karmaşık, ad alanlı XML işleme kadar her şeyi esnek bir şekilde ele alabilecek kadar çok yönlüdür. RSS beslemesi tüketen bir iOS uygulaması, rakip fiyatlarını kazıyan bir Vapor sunucusu ya da XML verilerini dönüştüren bir komut satırı aracı geliştiriyor olun, Kanna işi güvenilir ve zarif bir şekilde tamamlamanız için gerekli araçları sağlar.

Previous Next

Kanna'ya Başlarken

Kanna'yı kurmanın önerilen ve en kolay yolu CocoaPods kullanmaktır. Sorunsuz bir kurulum için lütfen aşağıdaki komutu kullanın.

Kanna'yı Carthage ile Kurun

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

// Then run:
$ pod install

Kanna'yı CocoaPods ile Kurun


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

Ayrıca manuel olarak da kurabilirsiniz; en son sürüm dosyalarını doğrudan GitHub deposundan indirin.

Swift ile HTML Belgelerini Ayrıştırma

Açık kaynak Kanna kütüphanesi, Swift uygulamaları içinde HTML belgelerini yükleme ve ayrıştırma desteği içermektedir. HTML ayrıştırmanın en yaygın kullanım senaryosu, ister web'den indirilmiş ister programatik olarak oluşturulmuş olsun. İşte, yazılım geliştiricilerin ham bir HTML dizesi kabul eden, onu kodlayan ve .title ve .body gibi özelliklere sahip bir belge nesnesi döndüren HTML işlevini nasıl kullanabileceklerini gösteren basit bir örnek.

Swift Kütüphanesi ile UTF-8 Kodlamasını Kullanarak HTML Nasıl Ayrıştırılır?

 import Kanna

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

  
    My Tech Blog
  
  
    

Swift Parsing'e Hoş Geldiniz

Kanna, HTML ayrıştırmayı kolay ve şık hale getirir.

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çici Sorgulama Desteği

Kanna kütüphanesi, geliştiricilerin öğeleri bulmak için tanıdık CSS sözdizimini kullanmalarını sağlayan tam CSS3 seçici desteği eklemiştir. Kanna'nın CSS seçici desteği, bir stil sayfasında veya JavaScript'in querySelectorAll yönteminde yazabileceğiniz aynı seçici sözdizimini kullanmanıza olanak tanır. Bu, web geliştirme geçmişi olan herkes için çok sezgisel bir deneyim sunar. Aşağıdaki örnek, kullanıcıların HTML öğelerini nasıl seçebileceğini ve Swift uygulamaları içinde birden fazla öğe üzerinde nasıl yineleme yapabileceğini gösterir.

Swift Kütüphanesi ile Birden Çok HTML Öğesini Seçip Metnini Çıkarın?

import Kanna

let htmlString = """


  
  • Swift Kitabı $39.99
  • Xcode Rehberi $24.99
  • iOS Temelleri $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 Sorgulama Desteği

Kanna kütüphanesi, Swift uygulamaları içinde XPath 1.0 sorgulama desteği eklemiştir. XPath, bir XML/HTML belgesindeki öğeler ve öznitelikler arasında gezinmek için daha güçlü ve esnek bir yol sunar. Özellikle karmaşık belge yapıları için faydalıdır. XPath ifadeleri, öğeleri konumlarına, ebeveyn-çocuk ilişkilerine veya karmaşık metin eşleşmelerine göre bulmak gibi CSS seçicilerinin yapamadığı şekillerde belgeleri dolaşabilir. XML ayrıştırma ve karmaşık HTML kazıma işlemleri için vazgeçilmezdir.

Swift ile XML Ayrıştırma ve Doğrulama

Temel HTML ayrıştırmanın ötesinde, açık kaynak Kanna kütüphanesi güçlü XML işleme yetenekleri sunar. Bu, doğru XML yapı doğrulaması ve öznitelik yönetimini içerir. Yapılandırılmış veriyle çalışırken yalnızca öğe çıkarımından daha fazlasına ihtiyacınız vardır. Kanna, yorumlar, işleme talimatları ve belge meta verileri dahil olmak üzere tam XML belge erişimi sağlar.

Swift Uygulamalarında XML Ayrıştırması Nasıl Yapılır?

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


 Türkçe