Convertir le texte HTML extrait

HTML est un langage de balisage couramment utilisé dans les sites Web, les applications Web, etc. Les contenus en HTML sont différenciés à l’aide de différentes balises. Vous pouvez facilement convertir HTML en texte brut en utilisant le langage C# tout en ignorant les balises d’ouverture et de fermeture. De même, il peut y avoir des spécifications de feuilles de style en cascade, JavaScript ou toute autre section du code HTML selon vos besoins. Par conséquent, cela revient à extraire du texte d’un document HTML. Passons en revue la section suivante pour des informations détaillées :

Convertisseur HTML en texte brut en C#

Vous pouvez convertir du HTML en texte brut avec l’API Aspose.HTML for .NET. Il peut facilement être configuré dans un environnement basé sur .NET Framework à l’aide de la commande d’installation NuGet suivante :

PM> Install-Package Aspose.Html

Convertir HTML en fichier texte à l’aide d’INodeIterator en C#

L’API Aspose.HTML for .NET est basée sur DOM (Document Object Model) afin que vous puissiez parcourir différents nœuds de l’API à l’aide de l’interface INodeIterator. De même, il vous donne le contrôle pour définir un NodeFilter et remplacer les méthodes de filtrage du contenu. Vous pouvez ignorer le style, le script ou tout autre élément du fichier HTML pour en extraire uniquement la chaîne de texte. Vous trouverez ci-dessous les étapes pour convertir HTML en fichier TXT brut à l’aide de C# :

  1. Lire le fichier HTML d’entrée
  2. Initialiser l’instance de l’itérateur de nœud
  3. Créer une instance INodeIterator
  4. Vérifier le filtre de style
  5. Lire la valeur du nœud dans une chaîne
  6. Écrire le contenu du texte HTML en tant que fichier TXT

Le code ci-dessous montre comment convertir un fichier HTML en texte brut à l’aide de C# :

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

// Créer une instance de document HTML
using (var document = new HTMLDocument(content, ""))
{
    // La première façon de rassembler des éléments de texte à partir d'un document
    // Initialiser l'instance de l'itérateur de nœud
    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>
/// Représente un filtre utilisateur créé pour ignorer le contenu des éléments 'style' et 'script'.
///</summary>
class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter
{
    public override short AcceptNode(Aspose.Html.Dom.Node n)
    {
        //Si vous voulez éviter un élément, écrivez son nom en majuscules
        return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" ? FILTER_REJECT : FILTER_ACCEPT);
    }
}

Extraire du texte à partir de HTML avec différentes approches à l’aide de C#

Nous avons appris à convertir HTML en texte en utilisant INodeIterator. De même, il existe plusieurs autres approches pour répondre à ces exigences. Vous pouvez créer une méthode personnalisée pour extraire du texte ou utiliser la propriété TextContent comme expliqué dans les étapes ci-dessous :

  1. Charger le document HTML d’entrée
  2. Définir une méthode définie par l’utilisateur
  3. Vérifiez chaque NodeType pour voir s’il s’agit d’un nœud d’élément ou d’un nœud de texte
  4. Obtenir des éléments de texte à l’aide de la propriété TextContent
  5. Enregistrer le fichier TXT de sortie

L’extrait de code ci-dessous explique ces deux approches différentes pour convertir HTML en texte brut en C# :

String text = "";
String content = File.ReadAllText(dataDir + "Test2.html");
// Créer une instance de document HTML
var document = new HTMLDocument(content, "");

// La deuxième façon de rassembler des éléments de texte à partir d'un document en utilisant une méthode personnalisée
text = GetContent(document.Body);

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

// La troisième façon de rassembler des éléments de texte à partir d'un document en utilisant la propriété 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();
}

Convertir l’URL de la page Web HTML en texte à l’aide de C#

Nous avons déjà couvert la conversion de page Web hors ligne HTML en texte où le fichier HTML doit exister en le téléchargeant sur le disque. Allons encore plus loin où vous n’avez même pas besoin d’enregistrer le fichier HTML sur le disque. Vous pouvez convertir directement une page Web en spécifiant son URL en un fichier TXT à l’aide de C#. Par exemple, convertissons la page produit de l’API Aspose.HTML for .NET en un fichier TXT en suivant les étapes ci-dessous :

  1. Initialisez l’objet HTMLDocument et spécifiez l’URL
  2. Lire le contenu textuel du format HTML
  3. Écrivez le fichier TXT avec le texte extrait de la page Web

Le code ci-dessous montre comment convertir une URL de page Web HTML en texte à l’aide de C# :

// Initialiser l'objet HTMLDocument avec l'URL
HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net");
            
// Lire le contenu textuel du format HTML
String text = document.Body.TextContent;
            
// Ecrire le fichier TXT avec le texte extrait
File.WriteAllText("Webpage.txt", text);

Conclusion

Dans cet article, nous avons expliqué comment convertir des fichiers HTML en texte brut, extraire du texte à partir de HTML, ainsi qu’une URL de page Web en ligne au format de fichier TXT à l’aide de C#. Vous pouvez utiliser différentes approches et n’hésitez pas à nous contacter via le Forum d’assistance gratuit si vous avez besoin d’aide supplémentaire.

Voir également

Conseil : Vous pourriez être intéressé par un Convertisseur de texte en GIF gratuit qui vous permet de générer des animations à partir de textes.