تحويل استخراج نص HTML

HTML هي لغة ترميز شائعة الاستخدام في مواقع الويب وتطبيقات الويب وما إلى ذلك. يتم تمييز محتويات HTML باستخدام علامات مختلفة. يمكنك بسهولة تحويل HTML إلى نص عادي باستخدام لغة C# مع تجاهل علامات الفتح والإغلاق. وبالمثل ، قد يكون هناك بعض مواصفات أوراق الأنماط المتتالية أو JavaScript أو أي قسم آخر من HTML وفقًا لمتطلباتك. لذلك ، فهو يشبه استخراج نص من مستند HTML. دعنا نتصفح القسم التالي للحصول على معلومات مفصلة:

HTML لتحويل النص العادي في C#

يمكنك تحويل HTML إلى نص عادي باستخدام Aspose.HTML for .NET API. يمكن تكوينه بسهولة في بيئة قائمة على .NET Framework باستخدام أمر التثبيت التالي NuGet:

PM> Install-Package Aspose.Html

تحويل HTML إلى ملف نصي باستخدام INodeIterator في C#

يعتمد Aspose.HTML for .NET API على DOM (نموذج كائن المستند) بحيث يمكنك التكرار من خلال العقد المختلفة لواجهة برمجة التطبيقات باستخدام واجهة INodeIterator. وبالمثل ، يمنحك التحكم في تحديد NodeFilter وتجاوز طرق تصفية المحتويات. يمكنك تجاهل النمط أو البرنامج النصي أو أي عنصر آخر في ملف HTML لاختيار السلسلة النصية فقط منه. فيما يلي خطوات تحويل HTML إلى ملف TXT عادي باستخدام C#:

  1. قراءة ملف HTML المدخلات
  2. تهيئة مثيل مكرر العقدة
  3. قم بإنشاء مثيل INodeIterator
  4. تحقق من “عامل تصفية النمط”
  5. قراءة قيمة العقدة في سلسلة
  6. اكتب محتويات نص HTML كملف TXT

يوضح الكود أدناه كيفية تحويل HTML إلى ملف نص عادي باستخدام C#:

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 إلى نص عادي في C#:

String text = "";
String content = File.ReadAllText(dataDir + "Test2.html");
// قم بإنشاء مثيل لمستند HTML
var document = new HTMLDocument(content, "");

// الطريقة الثانية لتجميع عناصر النص من المستند باستخدام طريقة مخصصة
text = GetContent(document.Body);

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

// الطريقة الثالثة لتجميع عناصر النص من المستند باستخدام خاصية محتوى النص
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 بنص مستخرج من صفحة الويب

يوضح الكود أدناه كيفية تحويل HTML لصفحة ويب URL إلى نص باستخدام 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#. يمكنك استخدام أساليب مختلفة ولا تتردد في الاتصال بنا عبر منتدى الدعم المجاني إذا كنت بحاجة إلى أي مساعدة إضافية.

أنظر أيضا

نصيحة: قد تكون مهتمًا بـ Text to GIF Converter المجاني الذي يسمح لك بإنشاء رسوم متحركة من النصوص.