تبدیل متن Extract HTML

HTML یک زبان نشانه گذاری است که به طور رایج در وب سایت ها، برنامه های کاربردی وب و غیره استفاده می شود. محتویات در HTML با استفاده از برچسب های مختلف متمایز می شوند. شما به راحتی می توانید HTML را با استفاده از زبان سی شارپ به متن ساده تبدیل کنید و در عین حال تگ های باز و بسته را نادیده بگیرید. به همین ترتیب، ممکن است برخی از مشخصات شیوه نامه آبشاری، جاوا اسکریپت یا هر بخش دیگری از HTML بر اساس نیاز شما وجود داشته باشد. بنابراین، مانند استخراج متن از یک سند HTML است. اجازه دهید برای اطلاعات دقیق از بخش زیر عبور کنیم:

تبدیل HTML به متن ساده در سی شارپ

می‌توانید HTML را با Aspose.HTML for .NET API به متن ساده تبدیل کنید. با استفاده از دستور نصب زیر NuGet می‌توان آن را به راحتی در محیط مبتنی بر NET Framework پیکربندی کرد:

PM> Install-Package Aspose.Html

تبدیل HTML به فایل متنی با استفاده از INodeIterator در سی شارپ

Aspose.HTML برای .NET API مبتنی بر DOM (مدل شیء سند) است، بنابراین می توانید با استفاده از رابط INodeIterator از طریق گره های مختلف API تکرار کنید. به همین ترتیب، به شما کنترل تعریف NodeFilter و نادیده گرفتن روش‌های فیلتر کردن محتوا را می‌دهد. شما می توانید سبک، اسکریپت یا هر عنصر دیگری را در فایل HTML نادیده بگیرید و فقط رشته متن را از آن انتخاب کنید. در زیر مراحل تبدیل HTML به فایل TXT ساده با استفاده از سی شارپ آمده است:

  1. فایل HTML ورودی را بخوانید
  2. نمونه تکرار گره را راه اندازی کنید
  3. نمونه INodeIterator ایجاد کنید
  4. فیلتر سبک را بررسی کنید
  5. مقدار Node را در یک رشته بخوانید
  6. محتوای متنی HTML را به صورت فایل TXT بنویسید

کد زیر نحوه تبدیل HTML به فایل متنی ساده با استفاده از سی شارپ را نشان می دهد:

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

// یک نمونه از سند HTML ایجاد کنید
using (var document = new HTMLDocument(content, ""))
{
    // اولین راه برای جمع آوری عناصر متن از سند
    // نمونه تکرار گره را راه اندازی کنید
    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>
/// نشان دهنده یک فیلتر کاربر است که به منظور نادیده گرفتن محتوای عنصر "سبک" و "اسکریپت" ایجاد شده است.
///</summary>
class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter
{
    public override short AcceptNode(Aspose.Html.Dom.Node n)
    {
        //اگر می خواهید از هر عنصری اجتناب کنید، نام آن را با حروف بزرگ بنویسید
        return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" ? FILTER_REJECT : FILTER_ACCEPT);
    }
}

استخراج متن از HTML با رویکردهای مختلف با استفاده از C#

ما یاد گرفتیم که چگونه HTML را با استفاده از INodeIterator به متن تبدیل کنیم. به همین ترتیب، چندین رویکرد دیگر برای دستیابی به این الزامات وجود دارد. می‌توانید یک روش سفارشی برای استخراج متن ایجاد کنید یا با ویژگی TextContent همانطور که در مراحل زیر توضیح داده شده است کار کنید:

  1. سند HTML ورودی را بارگیری کنید
  2. یک روش تعریف شده توسط کاربر تعریف کنید
  3. هر NodeType را بررسی کنید تا ببینید گره عنصر یا گره متن است
  4. عناصر متن را با استفاده از ویژگی TextContent دریافت کنید
  5. فایل TXT خروجی را ذخیره کنید

قطعه کد زیر این دو روش مختلف را برای تبدیل HTML به متن ساده در سی شارپ توضیح می دهد:

String text = "";
String content = File.ReadAllText(dataDir + "Test2.html");
// یک نمونه از سند HTML ایجاد کنید
var document = new HTMLDocument(content, "");

// روش دوم جمع آوری عناصر متن از سند با استفاده از روش سفارشی
text = GetContent(document.Body);

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

// روش سوم جمع آوری عناصر متن از سند با استفاده از ویژگی 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();
}

تبدیل URL صفحه وب HTML به متن با استفاده از C#

ما قبلاً صفحه وب آفلاین تبدیل HTML به متن را پوشش داده ایم که در آن فایل HTML لازم است با دانلود آن بر روی دیسک وجود داشته باشد. اجازه دهید یک قدم دیگر را جلوتر ببریم، جایی که شما حتی نیازی به ذخیره فایل HTML روی دیسک ندارید. شما می توانید مستقیماً یک صفحه وب را با مشخص کردن URL آن به یک فایل TXT با استفاده از C# تبدیل کنید. به عنوان مثال، اجازه دهید صفحه محصول Aspose.HTML برای .NET API را با مراحل زیر به یک فایل TXT تبدیل کنیم:

  1. شیء HTMLDocument را مقداردهی کنید و URL را مشخص کنید
  2. محتوای متنی فرمت HTML را بخوانید
  3. فایل TXT را با متن استخراج شده از صفحه وب بنویسید

کد زیر نحوه تبدیل URL صفحه وب HTML به متن با استفاده از C# را نشان می دهد:

// شی HTMLDocument را با URL راه اندازی کنید
HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net");
            
// محتوای متنی فرمت HTML را بخوانید
String text = document.Body.TextContent;
            
// فایل TXT را با متن استخراج شده بنویسید
File.WriteAllText("Webpage.txt", text);

نتیجه

در این مقاله، نحوه تبدیل فایل‌های HTML به متن ساده، استخراج متن از HTML و همچنین URL صفحه وب آنلاین به فرمت فایل TXT با استفاده از C# را مورد بحث قرار داده‌ایم. می‌توانید از روش‌های مختلف استفاده کنید و در صورت نیاز به کمک بیشتر از طریق تالار گفتمان پشتیبانی رایگان با ما در تماس باشید.

همچنین ببینید

نکته: ممکن است به یک تبدیل متن به GIF رایگان علاقه داشته باشید که به شما امکان می دهد انیمیشن ها را از متون تولید کنید.