Konversi Ekstrak Teks HTML

HTML adalah bahasa markup yang populer digunakan di situs web, aplikasi web, dll. Konten dalam HTML dibedakan menggunakan tag yang berbeda. Anda dapat dengan mudah mengonversi HTML menjadi teks biasa menggunakan bahasa C# sambil mengabaikan tag pembuka dan penutup. Demikian pula, mungkin ada beberapa spesifikasi lembar gaya kaskade, JavaScript, atau bagian lain dari HTML sesuai kebutuhan Anda. Oleh karena itu, ini seperti Mengekstrak teks dari dokumen HTML. Mari kita berjalan melalui bagian berikut untuk informasi rinci:

Pengonversi HTML ke Teks Biasa di C#

Anda dapat mengonversi HTML ke Teks Biasa dengan Aspose.HTML for .NET API. Itu dapat dengan mudah dikonfigurasi di lingkungan berbasis .NET Framework menggunakan perintah instalasi NuGet berikut:

PM> Install-Package Aspose.Html

Konversikan HTML ke File Teks menggunakan INodeIterator di C#

Aspose.HTML for .NET API didasarkan pada DOM (Document Object Model) sehingga Anda dapat melakukan iterasi melalui berbagai node API menggunakan antarmuka INodeIterator. Demikian pula, ini memberi Anda kontrol untuk menentukan NodeFilter dan mengganti metode untuk memfilter konten. Anda dapat mengabaikan gaya, skrip, atau elemen lain apa pun dalam file HTML untuk memilih string teks saja. Di bawah ini adalah langkah-langkah untuk mengonversi HTML ke File TXT Biasa menggunakan C#:

  1. Baca file HTML masukan
  2. Inisialisasi instance iterator node
  3. Buat INodeIterator instance
  4. Periksa Filter Gaya
  5. Baca nilai Node dalam sebuah string
  6. Tulis konten Teks HTML sebagai file TXT

Kode di bawah ini menunjukkan cara mengonversi file HTML ke Teks Biasa menggunakan C#:

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

// Buat sebuah instance dari dokumen HTML
using (var document = new HTMLDocument(content, ""))
{
    // Cara pertama mengumpulkan elemen teks dari dokumen
    // Inisialisasi instance iterator node
    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>
/// Mewakili filter pengguna yang dibuat untuk mengabaikan konten elemen 'gaya' dan 'skrip'.
///</summary>
class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter
{
    public override short AcceptNode(Aspose.Html.Dom.Node n)
    {
        //Jika Anda ingin menghindari elemen apa pun, tulis namanya dengan huruf kapital
        return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" ? FILTER_REJECT : FILTER_ACCEPT);
    }
}

Ekstrak Teks dari HTML dengan Berbagai Pendekatan menggunakan C#

Kami telah mempelajari cara mengonversi HTML ke Teks menggunakan INodeIterator. Demikian juga, ada beberapa pendekatan lain untuk mencapai persyaratan ini. Anda dapat membuat metode khusus untuk mengekstrak teks, atau bekerja dengan properti TextContent seperti yang dijelaskan pada langkah-langkah di bawah ini:

  1. Muat dokumen HTML masukan
  2. Tentukan metode yang ditentukan pengguna
  3. Periksa setiap NodeType untuk melihat apakah itu simpul elemen atau simpul teks
  4. Dapatkan elemen teks menggunakan properti TextContent.
  5. Simpan file TXT keluaran

Cuplikan kode di bawah ini menjelaskan dua pendekatan berbeda untuk mengonversi HTML ke Teks Biasa di C#:

String text = "";
String content = File.ReadAllText(dataDir + "Test2.html");
// Buat sebuah instance dari dokumen HTML
var document = new HTMLDocument(content, "");

// Cara kedua mengumpulkan elemen teks dari dokumen dengan menggunakan metode kustom
text = GetContent(document.Body);

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

// Cara ketiga mengumpulkan elemen teks dari dokumen dengan menggunakan properti TextContent
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();
}

Ubah URL Halaman Web HTML menjadi Teks menggunakan C#

Kami telah membahas HTML halaman web offline menjadi konversi teks di mana file HTML harus ada dengan mengunduhnya ke disk. Mari kita melangkah lebih jauh di mana Anda bahkan tidak perlu menyimpan file HTML di disk. Anda dapat langsung mengonversi halaman web dengan menentukan URL-nya, ke file TXT menggunakan C#. Misalnya, mari kita konversi halaman produk Aspose.HTML for .NET API ke file TXT dengan langkah-langkah di bawah ini:

  1. Inisialisasi objek HTMLDocument dan tentukan URL
  2. Baca isi teks dari format HTML
  3. Tulis file TXT dengan teks yang diekstraksi dari halaman web

Kode di bawah ini menunjukkan cara mengonversi URL Halaman Web HTML ke Teks menggunakan C#:

// Inisialisasi objek HTMLDocument dengan URL
HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net");
            
// Baca isi teks dari format HTML
String text = document.Body.TextContent;
            
// Tulis file TXT dengan teks yang diekstraksi
File.WriteAllText("Webpage.txt", text);

Kesimpulan

Pada artikel ini, kita telah membahas cara mengonversi file HTML ke Teks Biasa, mengekstrak teks dari HTML, serta URL halaman web online ke format file TXT menggunakan C#. Anda dapat menggunakan berbagai pendekatan dan jangan ragu untuk menghubungi kami melalui Forum Dukungan Gratis jika Anda memerlukan bantuan lebih lanjut.

Lihat juga

Tip: Anda mungkin tertarik dengan Text to GIF Converter gratis yang memungkinkan Anda membuat animasi dari teks.