Dönüştür HTML Metnini Ayıkla

HTML, web sitelerinde, web uygulamalarında vb. yaygın olarak kullanılan bir biçimlendirme dilidir. HTML’deki içerikler, farklı etiketler kullanılarak farklılaştırılır. Açılış ve kapanış etiketlerini göz ardı ederek C# dilini kullanarak HTML’yi düz metne kolayca dönüştürebilirsiniz. Aynı şekilde, gereksinimlerinize göre bazı basamaklı stil sayfaları özellikleri, JavaScript veya HTML’nin başka herhangi bir bölümü olabilir. Bu nedenle, bir HTML belgesinden metin çıkarmaya benzer. Ayrıntılı bilgi için aşağıdaki bölümü inceleyelim:

C#’ta HTML’den Düz Metin Dönüştürücüye

Aspose.HTML for .NET API ile HTML’yi Düz Metne dönüştürebilirsiniz. Aşağıdaki NuGet yükleme komutu kullanılarak .NET Framework tabanlı ortamda kolayca yapılandırılabilir:

PM> Install-Package Aspose.Html

C#’ta INodeIterator kullanarak HTML’yi Metin Dosyasına Dönüştür

Aspose.HTML for .NET API, DOM’a (Belge Nesne Modeli) dayalıdır, böylece INodeIterator arayüzünü kullanarak API’nin farklı düğümleri arasında geçiş yapabilirsiniz. Aynı şekilde, size bir NodeFilter tanımlama ve içerikleri filtrelemek için yöntemleri geçersiz kılma denetimi sağlar. Yalnızca metin dizesini seçmek için HTML dosyasındaki stili, komut dosyasını veya diğer herhangi bir öğeyi yok sayabilirsiniz. C# kullanarak HTML’yi Düz TXT Dosyasına dönüştürme adımları aşağıdadır:

  1. Giriş HTML dosyasını oku
  2. Düğüm yineleyici örneğini başlat
  3. INodeIterator örneği oluştur
  4. Stil Filtresini Kontrol Edin
  5. Düğüm değerini bir dizede oku
  6. HTML’nin Metin içeriğini TXT dosyası olarak yaz

Aşağıdaki kod, HTML’yi C# kullanarak Düz Metin dosyasına nasıl dönüştüreceğinizi gösterir:

String content = File.ReadAllText(dataDir + "Test2.html");

// Bir HTML belgesi örneği oluşturun
using (var document = new HTMLDocument(content, ""))
{
    // Metin öğelerini belgeden toplamanın ilk yolu
    // Düğüm yineleyici örneğini başlat
    Aspose.Html.Dom.Traversal.INodeIterator iterator = document.CreateNodeIterator(document, Aspose.Html.Dom.Traversal.Filters.NodeFilter.SHOW_TEXT, new StyleFilter());
    StringBuilder sb = new StringBuilder();
    Aspose.Html.Dom.Node node;
    while ((node = iterator.NextNode()) != null)
        sb.Append(node.NodeValue);
    Console.WriteLine(sb.ToString());

    File.WriteAllText(@"NodeIterator.txt", sb.ToString());
}


///<summary>
/// 'style' ve 'script' öğesinin içeriğini yok saymak için oluşturulmuş bir kullanıcı filtresini temsil eder.
///</summary>
class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter
{
    public override short AcceptNode(Aspose.Html.Dom.Node n)
    {
        //Herhangi bir öğeden kaçınmak istiyorsanız, adını büyük harflerle yazın.
        return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" ? FILTER_REJECT : FILTER_ACCEPT);
    }
}

C# Kullanarak Farklı Yaklaşımlarla HTML’den Metin Çıkarma

INodeIterator kullanarak HTML’yi Metne dönüştürmeyi öğrendik. Aynı şekilde, bu gereklilikleri yerine getirmek için birkaç başka yaklaşım vardır. Metni ayıklamak için özel bir yöntem oluşturabilir veya aşağıdaki adımlarda açıklandığı gibi TextContent özelliğiyle çalışabilirsiniz:

  1. Giriş HTML belgesini yükle
  2. Kullanıcı tanımlı bir yöntem tanımlayın
  3. Bir öğe düğümü mü yoksa metin düğümü mü olduğunu görmek için her NodeType öğesini kontrol edin
  4. TextContent özelliğini kullanarak metin öğelerini alın
  5. Çıkış TXT dosyasını kaydet

Aşağıdaki kod parçacığı, HTML’yi C# dilinde Düz Metne dönüştürmek için bu iki farklı yaklaşımı açıklamaktadır:

String text = "";
String content = File.ReadAllText(dataDir + "Test2.html");
// Bir HTML belgesi örneği oluşturun
var document = new HTMLDocument(content, "");

// Özel yöntem kullanarak metin öğelerini belgeden toplamanın ikinci yolu
text = GetContent(document.Body);

File.WriteAllText("Test.txt", text);

// TextContent özelliğini kullanarak belgeden metin öğeleri toplamanın üçüncü yolu
text = document.Body.TextContent;

File.WriteAllText("Test.txt", text);



static string GetContent(Aspose.Html.Dom.Node node)
{
    StringBuilder sb = new StringBuilder();
    foreach (var n in node.ChildNodes)
    {
        if (n.NodeType == Aspose.Html.Dom.Node.ELEMENT_NODE)
            sb.Append(GetContent(n));
        else if (n.NodeType == Aspose.Html.Dom.Node.TEXT_NODE)
            sb.Append(n.NodeValue);
    }
    return sb.ToString();
}

C# kullanarak URL Web Sayfası HTML’sini Metne Dönüştür

HTML dosyasının diske indirilerek var olması gereken çevrimdışı web sayfası HTML’den metne dönüştürme işlemini zaten ele aldık. HTML dosyasını diske kaydetmenize bile gerek olmayan bir adım daha ileri gidelim. URL’sini belirterek bir web sayfasını C# kullanarak doğrudan bir TXT dosyasına dönüştürebilirsiniz. Örneğin Aspose.HTML for .NET API ürün sayfasını aşağıdaki adımlarla bir TXT dosyasına dönüştürelim:

  1. HTMLDocument nesnesini başlatın ve URL’yi belirtin
  2. HTML formatının metin içeriğini okuyun
  3. TXT dosyasını web sayfasından ayıklanan metinle yazın

Aşağıdaki kod, URL Web Sayfası HTML’sinin C# kullanarak Metne nasıl dönüştürüleceğini gösterir:

// HTMLDocument nesnesini URL ile başlat
HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net");
            
// HTML formatının metin içeriğini okuyun
String text = document.Body.TextContent;
            
// TXT dosyasını ayıklanan metinle yazın
File.WriteAllText("Webpage.txt", text);

Çözüm

Bu makalede, C# kullanarak HTML dosyalarının Düz Metne dönüştürülmesini, HTML’den metin çıkarılmasının yanı sıra çevrimiçi bir web sayfası URL’sinin TXT dosya biçimine nasıl dönüştürüleceğini tartıştık. Farklı yaklaşımlar kullanabilir ve daha fazla yardıma ihtiyacınız olursa Ücretsiz Destek Forumu aracılığıyla bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız

İpucu: Metinlerden animasyonlar oluşturmanıza olanak tanıyan ücretsiz bir Metinden GIF’e Dönüştürücü ilginizi çekebilir.