Konvertera extrahera HTML-text

HTML är ett märkningsspråk som är populärt på webbplatser, webbapplikationer etc. Innehåll i HTML särskiljs med olika taggar. Du kan enkelt konvertera HTML till vanlig text med C#-språket samtidigt som du ignorerar öppnings- och stängningstaggarna. På samma sätt kan det finnas vissa överlappande stilmallar specifikationer, JavaScript eller någon annan del av HTML enligt dina krav. Därför är det som att extrahera text från ett HTML-dokument. Låt oss gå igenom följande avsnitt för detaljerad information:

HTML till vanlig textkonverterare i C#

Du kan konvertera HTML till vanlig text med Aspose.HTML for .NET API. Det kan enkelt konfigureras i .NET Framework-baserad miljö med följande installationskommando NuGet:

PM> Install-Package Aspose.Html

Konvertera HTML till textfil med INodeIterator i C#

Aspose.HTML för .NET API är baserat på DOM (Document Object Model) så att du kan iterera genom olika noder i API:t med hjälp av INodeIterator-gränssnittet. På samma sätt ger det dig kontroll att definiera ett NodeFilter och åsidosätta metoder för att filtrera innehåll. Du kan ignorera stilen, skriptet eller något annat element i HTML-filen för att bara välja textsträngen ur den. Nedan följer stegen för att konvertera HTML till vanlig TXT-fil med C#:

  1. Läs HTML-inmatningsfil
  2. Initiera instansen av nod iterator
  3. Skapa INodeIterator instans
  4. Kontrollera efter stilfilter
  5. Läs nodvärdet i en sträng
  6. Skriv textinnehåll i HTML som TXT-fil

Koden nedan visar hur man konverterar HTML till vanlig textfil med C#:

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

// Skapa en instans av HTML-dokument
using (var document = new HTMLDocument(content, ""))
{
    // Det första sättet att samla textelement från dokument
    // Initiera instansen av nod iterator
    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>
/// Representerar ett användarfilter som skapats för att ignorera innehållet i elementet "stil" och "skript".
///</summary>
class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter
{
    public override short AcceptNode(Aspose.Html.Dom.Node n)
    {
        //Om du vill undvika något element, skriv dess namn med versaler
        return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" ? FILTER_REJECT : FILTER_ACCEPT);
    }
}

Extrahera text från HTML med olika tillvägagångssätt med C#

Vi har lärt oss hur man konverterar HTML till text med INodeIterator. Likaså finns det flera andra metoder för att uppnå dessa krav. Du kan skapa en anpassad metod för att extrahera text, eller arbeta med TextContent-egenskapen enligt beskrivningen i stegen nedan:

  1. Ladda inmatat HTML-dokument
  2. Definiera en användardefinierad metod
  3. Kontrollera varje NodeType för att se om det är en elementnod eller textnod
  4. Hämta textelement med egenskapen TextContent
  5. Spara utdata-TXT-fil

Kodavsnittet nedan förklarar dessa två olika metoder för att konvertera HTML till vanlig text i C#:

String text = "";
String content = File.ReadAllText(dataDir + "Test2.html");
// Skapa en instans av HTML-dokument
var document = new HTMLDocument(content, "");

// Det andra sättet att samla in textelement från dokument med hjälp av anpassad metod
text = GetContent(document.Body);

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

// Det tredje sättet att samla in textelement från dokument med hjälp av egenskapen 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();
}

Konvertera URL webbsida HTML till text med C#

Vi har redan täckt offlinewebbsidan HTML till textkonvertering där HTML-filen måste existera genom att ladda ner den på disken. Låt oss gå ytterligare ett steg längre där du inte ens behöver spara HTML-filen på disken. Du kan direkt konvertera en webbsida genom att ange dess URL, till en TXT-fil med C#. Låt oss till exempel konvertera produktsidan för Aspose.HTML för .NET API till en TXT-fil med nedanstående steg:

  1. Initiera objektet HTMLDocument och ange URL:en
  2. Läs textinnehållet i HTML-formatet
  3. Skriv TXT-filen med extraherad text från webbsidan

Koden nedan visar hur man konverterar URL webbsida HTML till text med C#:

// Initiera HTMLDocument-objekt med URL
HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net");
            
// Läs textinnehållet i HTML-formatet
String text = document.Body.TextContent;
            
// Skriv TXT-filen med extraherad text
File.WriteAllText("Webpage.txt", text);

Slutsats

I den här artikeln har vi diskuterat hur man konverterar HTML-filer till vanlig text, extraherar text från HTML, såväl som en webbadress online till TXT-filformat med C#. Du kan använda olika tillvägagångssätt och kontakta oss gärna via Free Support Forum om du behöver ytterligare hjälp.

Se även

Tips: Du kanske är intresserad av en gratis Text to GIF Converter som låter dig generera animationer från texter.