Altbilgi içeriğine atla
.NET YARDıM

Html Agility Pack C# (Geliştiriciler için Nasıl Çalışır)

Belge içeriğini dinamik bir şekilde yönetme ve manipüle etme ihtiyacı, C# geliştirme dünyasında yaygındır. Geliştiriciler, PDF raporları oluşturma ve web sayfalarından veri çıkarma gibi faaliyetleri otomatikleştirmek için yaygın olarak sağlam kütüphanelere güvenirler. Bu makale, C# dilinde IronPDF ve HTML Agility Pack'in basit entegrasyonunu inceleyerek, bu kütüphanelerin PDF belgeleri oluşturmayı ve HTML metni okuma işlemlerini nasıl kolayca yapabileceğinizi göstermek için kod örnekleri sağlar.

IronPDF, PDF dosyalarıyla çalışmak için zengin özelliklere sahip bir .NET kütüphanesidir. IronPDF, geliştirilicilere HTML içeriği, URL'ler veya ham verilerden dinamik olarak PDF dosyaları oluşturma olanağı tanıdığı için belge oluşturma, raporlama ve veri görselleştirme için değerli bir araç olarak hizmet verir.

.NET uygulamalarında belge oluşturmayı iş akışını hızlandırmak için, bu gönderide IronPDF'i HTML Agility Pack ile nasıl bağlayacağımızı inceleyeceğiz. Bu teknolojileri birleştirerek, geliştiricilere uzaktaki sistemlerle çalışabilme imkânı verirken, dinamik PDF sayfaları üreterek network bağlantısı üzerinden veri alma ve bunların yanında programlamalarında verimliliği ve ölçeklenebilirliği artırma fırsatını sunar.

How to Use HtmlAgilityPack in C

  1. Yeni bir C# Projesi oluşturun.
  2. HtmlAgilityPack kütüphanesini kurun.
  3. Ad alanını içe aktarın. Bir nesne oluşturun.
  4. URL'den veriyi içe aktarın ve HTML'yi ayrıştırın.
  5. Gereken veriyi alın ve nesneyi silin.

HtmlAgilityPack'e Giriş

HTML Agility Pack, .NET geliştiricileri için çok yönlü ve güçlü bir HTML ayrıştırma kütüphanesidir. API'ların geniş koleksiyonu ile geliştiriciler, HTML belgelerinde kolayca gezinme, değiştirme ve veri çıkarma işlemlerini gerçekleştirebilir. HTML Agility Pack, tüm geliştiriciler için HTML içeriğiyle programlı olarak çalışmayı daha kolay hale getirir, deneyim seviyesine bakılmaksızın.

HTML Agility Pack'in kötü biçimlendirilmiş veya yanlış yapılandırılmış HTML'yi nazikçe yönetme yeteneği onu benzersiz kılar. Bu, HTML işaretleme kalitesinin değişken olabileceği çevrimiçi scraping işlemleri için mükemmel bir seçimdir çünkü en kötü yapılandırılmış HTML'yi bile işleyebilen hoşgörülü bir ayrıştırma algoritması kullanır.

HtmlAgilityPack'in Özellikleri

HTML Ayrıştırma

HTML Agility Pack tarafından sunulan güçlü HTML ayrıştırma özellikleri ile geliştiriciler, dosyalar, URL'ler ve dizeler de dahil olmak üzere çeşitli kaynaklardan HTML belgelerini yükleyebilir. Hoşgörülü ayrıştırma yaklaşımı sayesinde, kötü biçimlendirilmiş veya yanlış düzenlenmiş HTML'yi zarif bir şekilde işleyebilir, bu yüzden HTML işaretleme kalitesinin değişken olabileceği web scraping etkinlikleri için uygundur.

DOM Manipülasyonu

HAP, HTML Belge Nesne Modeli (DOM) yapısını keşfetmek, gezmek ve çalışmak için kullanıcı dostu bir API sunar. Geliştiriciler, dinamik HTML içeriği manipülasyonu sağlamak için HTML elemanlarını, özelliklerini ve metin düğümlerini programlı olarak ekleyebilir, kaldırabilir veya değiştirebilir.

XPath ve LINQ Desteği

HTML bileşenlerini seçmek ve sorgulamak için HTML Agility Pack, LINQ (Dil Entegre Sorgu) ve XPath sözdizimi aramalarını destekler. XPath çıkartım sorguları, HTML belgesindeki öğeleri, etiketlerine veya hiyerarşisine göre seçmek için güçlü ve anlaşılması kolay bir sözdizimi sağlar. LINQ ile çalışmaya alışkın olan geliştiriciler için, LINQ sorguları diğer .NET bileşenleriyle sorunsuz entegrasyon kolaylaşan tanıdık bir sorgulama sözdizimi sağlar.

HtmlAgilityPack ile Başlarken

C# Projelerinde HtmlAgilityPack Kurulumu

HtmlAgility Taban Sınıf Kütüphanesi, NuGet tarafından kurulması gereken tek bir birleşik paket içinde gelir ve C# projesinde kullanılabilir. HTML belgesinden ve HTML URL'lerinden bir HTML ayrıştırıcı ve CSS seçiciler sunar.

Windows Konsol ve Formlarında HtmlAgilityPack'i Uygulama

Windows Formları (WinForms) ve Windows Konsolu gibi birçok C# uygulama türü, HtmlAgilityPack'i uygular. Uygulama birbirinden farklı olsa da, temel fikir sabit kalır.

Html Agility Pack C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - NuGet Paket Yöneticisi'ni kullanarak HtmlAgilityPack'i arayın ve yükleyin

HtmlAgilityPack C# Örneği

C# geliştiricisinin HTML belgeleriyle gezinmek, işlemek ve çalışmak için kullanılan en önemli araçlardan biri HTML Agility Pack (HAP)'dir. HTML sayfalarından veri çekmeyi, yapılandırılmış bir eleman ağacı gibi çalışan kullanıcı dostu API'si ile daha kolay hale getirir. Nasıl kullanılacağını gösterirken basit bir kod örneği inceleyelim.

using HtmlAgilityPack;

// Load HTML content from a file or URL
HtmlWeb web = new HtmlWeb();
var doc = web.Load("https://ironpdf.com/");

// Select specific html nodes and parse html string
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");

// Iterate through selected nodes and extract content
foreach (HtmlNode node in nodes)
{
    Console.WriteLine(node.InnerText);
}
Console.ReadKey();
using HtmlAgilityPack;

// Load HTML content from a file or URL
HtmlWeb web = new HtmlWeb();
var doc = web.Load("https://ironpdf.com/");

// Select specific html nodes and parse html string
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");

// Iterate through selected nodes and extract content
foreach (HtmlNode node in nodes)
{
    Console.WriteLine(node.InnerText);
}
Console.ReadKey();
Imports HtmlAgilityPack

' Load HTML content from a file or URL
Private web As New HtmlWeb()
Private doc = web.Load("https://ironpdf.com/")

' Select specific html nodes and parse html string
Private nodes As HtmlNodeCollection = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']")

' Iterate through selected nodes and extract content
For Each node As HtmlNode In nodes
	Console.WriteLine(node.InnerText)
Next node
Console.ReadKey()
$vbLabelText   $csharpLabel

Bu örnekte, HTML düğüm malzemesini bir URL'den yüklemek için HTML Agility Pack kullanıyoruz. HTML daha sonra ayrıştırma ve manipülasyon için var doc içine yüklenir. İçeriği çıkarmak için, program ilk olarak HTML belgesinin kök düğümünü tanımlar ve ardından belgedeki düğümleri XPath sorguları kullanarak özel olarak hedef alır. Yukarıdaki koddan, string HTML verilerinden classı product-homepage-header olan div elemanlarını özel olarak seçiyoruz ve ardından seçilen her bir düğümün iç metni konsola yazdırılıyor.

Html Agility Pack C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - product-homepage-header sınıfının iç metnini alarak çıkarılan metin

HtmlAgilityPack İşlemleri

HTML Dönüşümü

Geliştiriciler, HTML Agility Pack kullanarak HTML metinlerine bir dizi dönüşüm ve manipülasyon uygulayabilirler. Bu, HTML belgesinin DOM hiyerarşisini yeniden düzenlemenin yanı sıra, metin düğümleri, öğeleri ve nitelikleri ekleme, silme veya değiştirme gibi işlemleri kapsar.

Yayılabilirlik

HAP genişletilebilir olacak şekilde tasarlandığından, programcılar işlevselliğini artırmak için yeni özellikler ve davranışlar ekleyebilirler. Sağlanan API'yi kullanarak, geliştiriciler kendi HTML ayrıştırıcılarını, filtrelerini veya manipülatörlerini tasarlayabilir ve HAP'i kendilerine özgü ihtiyaçlarına ve kullanım senaryolarına uygun hale getirebilirler.

Performans ve Etkinlik

HTML Agility Pack'in hızı ve etkinliği için ayarlanmış algoritma ve veri yapıları, büyük HTML metinlerini iyi bir şekilde yönetebilir. Bellek kullanımını ve işlem yükünü azaltarak hızlı ve duyarlı HTML içerik ayrıştırma ve manipülasyonu sağlar.

HtmlAgilityPack'i IronPDF ile Entegre Etme

IronPDF ile HtmlAgilityPack Kullanımı

HTML Agility Pack ve IronPDF ile PDF Dönüşümü kombinasyonu ile belge yönetimi ve rapor oluşturma olanakları sınırsızdır. HTML ayrıştırması için HTML Agility Pack ve PDF dönüşümü için IronPDF Belgeleri kullanılarak geliştiriciler, dinamik çevrimiçi materyallerden PDF belgeleri oluşturmayı kolayca otomatikleştirebilirler.

IronPDF'i Kurun

  • Visual Studio projesini başlatın.
  • "Araçlar" > "NuGet Paket Yöneticisi" > "Paket Yöneticisi Konsolu"nu seçin.
  • Paket Yöneticisi Konsoluna şu komutu girin:
Install-Package IronPdf
  • Alternatif olarak, IronPDF'i kurmak için Çözümler için NuGet Paket Yöneticisi'ni kullanabilirsiniz.
  • IronPDF paketi için arama sonuçları gözden geçirilebilir, seçilebilir ve ardından "Yükle" düğmesi tıklanabilir. Visual Studio, kurulum ve indirme işlemini sizin için halledecektir.

    Html Agility Pack C# (How It Works For Developers): Figure 3 - Install IronPDF using the Manage NuGet Package for Solution by searching IronPDF in the search bar of NuGet Package Manager, then select the project and click on the Install button.

  • NuGet, projeniz için gerekli olan IronPDF paketi ve bağımlılıkları yükleyecektir.
  • Kurulumdan sonra projenizde IronPDF kullanabilirsiniz.

NuGet Web Sitesi Üzerinden Yükleme

IronPDF'in özellikleri, uyumluluğu ve diğer indirme seçenekleri hakkında daha fazla bilgi için NuGet sitesindeki IronPDF NuGet Paketi Bilgisine bakın.

DLL kullanarak Yükleme

Alternatif olarak, IronPDF'in DLL dosyasını doğrudan projenize dahil etmek için kullanabilirsiniz. IronPDF DLL İndirme bağlantısını tıklayarak ZIP dosyasını edinmek için indirin. Sıkıştırmayı açtıktan sonra, DLL'i projenize dahil edin.

Lojiği Uygulamak

İki kütüphanenin özelliklerini entegre ederek, HTML Agility Pack (HAP) ve IronPDF, HTML bilgilerini okumak ve anında PDF belgeleri üretmek için C#'da uygulanabilir. Aşağıda, her birini adım adım tarif eden örnek kodla birlikte uygulama adımları listelenmiştir:

  1. HTML İçeriğini HTML Agility Pack Kullanarak Yükleyin: Bir dosya, dizi veya URL gibi bir kaynaktan HTML materyalini yüklemek için HTML Agility Pack kullanın. Bu aşamada, HTML belgesi ayrıştırılır ve manipüle edilebilir bir HTML belge nesnesi oluşturulur.
  2. İstenen İçeriği Çıkarın: HTML belgesinden belirli içeriği seçmek ve çıkarmak için XPath veya LINQ sorguları ile birlikte HTML Agility Pack'i kullanın. Bu, özellikleri, etiketleri veya hiyerarşik yapıları doğrultusunda elemanları seçmeyi içerebilir.
  3. IronPDF kullanarak HTML'yi PDF'ye Dönüştürün: Elde edilen HTML içeriğinden bir PDF belgesi oluşturmak için IronPDF kullanın. IronPDF, HTML materyalini stil ve düzeni koruyarak PDF formatına zahmetsizce dönüştürür.
  4. Opsiyonel: PDF Çıktısını Özelleştirin: PDF çıktısını gerektiği gibi özelleştirmek için IronPDF'i kullanarak başlıklar, altbilgiler, sayfa numaralandırması ve diğer dinamik bileşenler ekleyin. Bu adım, nihai PDF belgesinin görünümünü ve kullanılabilirliğini artırır.
  5. PDF Belgesini Kaydedin veya Yayınlayın: Oluşturulan PDF belgesi, doğrudan istemciye veya tarayıcıya indirme için yayınlanabilir veya bir dosyaya kaydedilebilir. IronPDF, PDF dosyalarını farklı çıktı akışlarına kaydetme yolları sunar.
using HtmlAgilityPack;
using IronPdf;
using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder htmlContent = new StringBuilder();

        // Load HTML content from a file or URL
        HtmlWeb web = new HtmlWeb();
        HtmlDocument doc = web.Load("https://ironpdf.com/");

        // Select specific elements using XPath or LINQ
        HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");

        // Iterate through selected nodes and extract content
        foreach (HtmlNode node in nodes)
        {
            htmlContent.Append(node.OuterHtml);
            Console.WriteLine(node.InnerText);
        }

        // Convert HTML content to PDF using IronPDF
        var Renderer = new HtmlToPdf();
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());

        // Save PDF to file
        PDF.SaveAs("output.pdf");
        Console.WriteLine("PDF generated successfully!");
        Console.ReadKey();
    }
}
using HtmlAgilityPack;
using IronPdf;
using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder htmlContent = new StringBuilder();

        // Load HTML content from a file or URL
        HtmlWeb web = new HtmlWeb();
        HtmlDocument doc = web.Load("https://ironpdf.com/");

        // Select specific elements using XPath or LINQ
        HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");

        // Iterate through selected nodes and extract content
        foreach (HtmlNode node in nodes)
        {
            htmlContent.Append(node.OuterHtml);
            Console.WriteLine(node.InnerText);
        }

        // Convert HTML content to PDF using IronPDF
        var Renderer = new HtmlToPdf();
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());

        // Save PDF to file
        PDF.SaveAs("output.pdf");
        Console.WriteLine("PDF generated successfully!");
        Console.ReadKey();
    }
}
Imports HtmlAgilityPack
Imports IronPdf
Imports System
Imports System.Text

Friend Class Program
	Shared Sub Main()
		Dim htmlContent As New StringBuilder()

		' Load HTML content from a file or URL
		Dim web As New HtmlWeb()
		Dim doc As HtmlDocument = web.Load("https://ironpdf.com/")

		' Select specific elements using XPath or LINQ
		Dim nodes As HtmlNodeCollection = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']")

		' Iterate through selected nodes and extract content
		For Each node As HtmlNode In nodes
			htmlContent.Append(node.OuterHtml)
			Console.WriteLine(node.InnerText)
		Next node

		' Convert HTML content to PDF using IronPDF
		Dim Renderer = New HtmlToPdf()
		Dim PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString())

		' Save PDF to file
		PDF.SaveAs("output.pdf")
		Console.WriteLine("PDF generated successfully!")
		Console.ReadKey()
	End Sub
End Class
$vbLabelText   $csharpLabel

Kod örneği hakkında daha fazla bilgi edinmek için Dönüşüm için IronPDF Kullanılmasını ziyaret edin.

Html Agility Pack C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 4 - IronPDF ana sayfası

Çalıştırma çıktısı aşağıda gösterilmiştir:

Yukarıdaki kodun örnek çıktısı

Sonuç

HTML verilerini ayrıştırırken veya PDF raporları oluştururken, HTML Agility Pack ve IronPDF'in C# içindeki sorunsuz entegrasyonu sayesinde geliştiriciler belge materyalini kolayca yönetebilir ve değiştirebilirler. IronPDF'in PDF üretme özellikleri ile HTML Agility Pack'in ayrıştırma yeteneklerini bir araya getirerek geliştiriciler, belgelerle ilgili işleri kolayca ve doğru bir şekilde otomatikleştirebilirler. Bu iki kütüphanenin birleşimi, dinamik raporlar oluşturmak ya da web sayfalarından veri çekmek istediğinizde güçlü bir C# belge yönetimi çözümü sunar.

Kalıcı bir lisans, bir yıl yazılım bakımı ve kitaplık yükseltmesi $999 Lite paketine dahildir. IronPDF, zamansal ve yeniden dağıtım sınırlamalarıyla birlikte ücretsiz lisanslama sağlar. Deneme süresi boyunca, kullanıcılar çözümü bir filigran görmeden değerlendirebilirler. Maliyet ve lisans hakkında daha fazla bilgi edinmek için IronPDF Lisans Bilgilerine gitmenizi rica ederiz.

Iron Software kütüphaneleri hakkında daha fazla bilgi edinin.

Sıkça Sorulan Sorular

HTML'yi C# içerisinde PDF'ye nasıl dönüştürebilirim?

HTML dizgilerini PDF'lere dönüştürmek için IronPDF'ün RenderHtmlAsPdf yöntemini kullanabilirsiniz. Ayrıca, HTML dosyalarını RenderHtmlFileAsPdf kullanarak PDF'lere dönüştürebilirsiniz.

C# projelerinde HtmlAgilityPack kullanmanın amacı nedir?

HtmlAgilityPack, C# projelerinde HTML belgelerini ayrıştırmak ve manipüle etmek için kullanılır. Kötü biçimlendirilmiş HTML'yi işleyebilir, bu da onu web kazıma ve veri çıkarma görevleri için ideal hale getirir.

C# uygulamasında HtmlAgilityPack nasıl kurulur?

HtmlAgilityPack'i kurmak için, Visual Studio'daki NuGet Paket Yöneticisi aracılığıyla kurun. Kurulumdan sonra gerekli ad alanları ekleyebilir ve uygulamanızda HTML içeriği ayrıştırmaya başlayabilirsiniz.

IronPDF ve HtmlAgilityPack, belge oluşturmada birlikte kullanılabilir mi?

Evet, IronPDF ve HtmlAgilityPack, HTML içeriğinden dinamik PDF belgeleri oluşturmak için birleştirilebilir. HtmlAgilityPack, HTML verilerini çıkarır ve manipüle eder, ardından IronPDF ile PDF'ye dönüştürülebilir.

.NET geliştiricileri için IronPDF'in başlıca özellikleri nelerdir?

IronPDF, HTML'den PDF'ye dönüştürme, PDF'leri birleştirme ve PDF'lere metin veya resim ekleme gibi özellikler sunar. .NET uygulamalarında sağlam PDF belge yönetimi için geniş bir fonksiyon yelpazesini destekler.

HtmlAgilityPack, web sayfalarından veri çıkarılmasında nasıl yardımcı olur?

HtmlAgilityPack, geliştiricilere HTML belgelerini yükleme ve belirli düğümler veya özelliklere göre veri gezme ve çıkarım yapma imkânı veren XPath veya LINQ sorguları ile veri çıkarmayı kolaylaştırır.

Bir PDF kütüphanesi ile HtmlAgilityPack entegrasyonunun faydaları nelerdir?

IronPDF ile HtmlAgilityPack entegrasyonu, dinamik HTML içeriğinin PDF raporlarına dönüştürülmesini sağlayarak belge üretimini kolaylaştırır ve .NET uygulamalarında otomasyonu artırır.

IronPDF konsol uygulamalarında kullanılabilir mi?

Evet, IronPDF, Windows Konsol uygulamaları dâhil olmak üzere çeşitli C# uygulama türlerinde uygulanabilir, bu da çeşitli belge işleme ve PDF oluşturma işlemleri sağlar.

HtmlAgilityPack ile hangi tür HTML işlemleri gerçekleştirilebilir?

HtmlAgilityPack, HTML düğümlerini ve öğelerini ekleme, silme veya değiştirme ve DOM yapısını yeniden düzenleme gibi işlemleri destekler; bu, HTML belge manipülasyonu için çok yönlü bir araç yapar.

IronPDF, geliştiriciler için ücretsiz bir deneme sunuyor mu?

IronPDF, geliştiricilere deneme süresi boyunca filigransız bir şekilde kütüphaneyi değerlendirme imkânı tanıyan belirli sınırlamalarla birlikte ücretsiz bir lisans sunar; satın almadan önce özelliklerini test etme fırsatı verir.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara