Este simples tutorial demonstra como converter HTML em texto em C#. Em C# HTML para texto simples, a conversão pode ser facilmente alcançada usando poucas linhas de código para qualquer aplicativo baseado em .NET executado em plataformas Windows, macOS ou Linux.
Etapas para converter HTML em texto em C#
- Instale Aspose.HTML for .NET do gerenciador de pacotes NuGet
- Inclua o namespace Aspose.HTML em seu projeto
- Carregar o conteúdo do arquivo HTML em uma String
- Crie uma instância da classe HTMLDocument para carregar a String contendo HTML
- Instanciar a instância da classe INodeIterator para iterar pelos nós e anexar no StringBuilder
- Finalmente, salve o texto convertido do HTML no disco
Para obter texto simples de HTML C#, poucas linhas de código podem ser usadas efetivamente em qualquer aplicativo baseado em .NET. O processo começa carregando o arquivo HTML como String na instância HTMLDocument class usando o método File.ReadAllText. Então INodeIterator será usado para extrair nós do HTML e anexá-los ao StringBuilder. Por fim, o HTML extraído no StringBuilder será salvo em disco.
Código para converter HTML em texto em C#
using System; | |
using System.IO; | |
using System.Text; | |
using Aspose.Html; | |
using Aspose.Html.Dom.Traversal; | |
using Aspose.Html.Dom.Traversal.Filters; | |
namespace KbHtml | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
// Set the API license to extract HTML text | |
License license = new License(); | |
license.SetLicense("Aspose.Html.lic"); | |
// Reading HTML file content | |
String HtmlContent = File.ReadAllText("Test2.html"); | |
// Create an object of HTMLDocument | |
using (var HtmlDocument = new HTMLDocument(HtmlContent, "")) | |
{ | |
// Initialize the instance of node iterator to iterate HTML | |
INodeIterator iterator = HtmlDocument.CreateNodeIterator(HtmlDocument, NodeFilter.SHOW_TEXT, | |
new StyleFilter()); | |
StringBuilder Stringbld = new StringBuilder(); | |
Aspose.Html.Dom.Node node; | |
// Iterate through Nodes | |
while ((node = iterator.NextNode()) != null) | |
Stringbld.Append(node.NodeValue); | |
Console.WriteLine(Stringbld.ToString()); | |
File.WriteAllText(@"HtmlToText.txt", Stringbld.ToString()); | |
} | |
} | |
} | |
class StyleFilter : NodeFilter | |
{ | |
public override short AcceptNode(Aspose.Html.Dom.Node node) | |
{ | |
// In order to avoid any element during fetching nodes, write the name of element in capital letters | |
return (node.ParentElement.TagName == "STYLE" || node.ParentElement.TagName == "SCRIPT" | |
? FILTER_REJECT : FILTER_ACCEPT); | |
} | |
} | |
} |
O código acima em C# converte HTML em texto simples usando poucas chamadas de API. Usamos a classe StyleFilter personalizada que herda a classe NodeFilter para substituir o método AcceptNode, que filtra os nós indesejáveis do HTML durante o processo de conversão.
No tópico anterior, aprendemos como criar arquivo HTML em C#. Considerando que, o exemplo acima em C# obtém texto simples do arquivo HTML programaticamente.