Convertir Extraer texto HTML

HTML es un lenguaje de marcas que se usa popularmente en sitios web, aplicaciones web, etc. Los contenidos en HTML se diferencian mediante diferentes etiquetas. Puede convertir fácilmente HTML a texto sin formato utilizando el lenguaje C# mientras ignora las etiquetas de apertura y cierre. Del mismo modo, podría haber algunas especificaciones de hojas de estilo en cascada, JavaScript o cualquier otra sección del HTML según sus requisitos. Por lo tanto, es como extraer texto de un documento HTML. Recorramos la siguiente sección para obtener información detallada:

Convertidor de HTML a texto sin formato en C#

Puede convertir HTML a texto sin formato con Aspose.HTML for .NET API. Se puede configurar fácilmente en un entorno basado en .NET Framework usando el siguiente comando de instalación NuGet:

PM> Install-Package Aspose.Html

Convierta HTML a archivo de texto usando INodeIterator en C#

Aspose.HTML for .NET API se basa en DOM (Document Object Model) para que pueda iterar a través de diferentes nodos de la API utilizando la interfaz INodeIterator. Asimismo, le da el control para definir un NodeFilter y anular métodos para filtrar contenidos. Puede ignorar el estilo, la secuencia de comandos o cualquier otro elemento del archivo HTML para seleccionar solo la cadena de texto. A continuación se muestran los pasos para convertir HTML a archivo TXT simple usando C#:

  1. Leer archivo HTML de entrada
  2. Inicializar la instancia del iterador de nodos
  3. Crear INodeIterator instancia
  4. Buscar filtro de estilo
  5. Leer el valor del nodo en una cadena
  6. Escribir contenido de texto de HTML como archivo TXT

El siguiente código muestra cómo convertir HTML a un archivo de texto sin formato usando C#:

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

// Crear una instancia de documento HTML
using (var document = new HTMLDocument(content, ""))
{
    // La primera forma de recopilar elementos de texto del documento.
    // Inicializar la instancia del iterador de nodos
    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>
/// Representa un filtro de usuario creado para ignorar el contenido del elemento 'style' y 'script'.
///</summary>
class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter
{
    public override short AcceptNode(Aspose.Html.Dom.Node n)
    {
        //Si quieres evitar algún elemento, escribe su nombre en mayúsculas
        return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" ? FILTER_REJECT : FILTER_ACCEPT);
    }
}

Extraiga texto de HTML con diferentes enfoques usando C#

Hemos aprendido cómo convertir HTML a texto usando INodeIterator. Del mismo modo, existen varios otros enfoques para lograr estos requisitos. Puede crear un método personalizado para extraer texto o trabajar con la propiedad TextContent como se explica en los pasos a continuación:

  1. Cargar documento HTML de entrada
  2. Definir un método definido por el usuario
  3. Verifique cada NodeType para ver si es un nodo de elemento o un nodo de texto
  4. Obtener elementos de texto usando la propiedad TextContent
  5. Guardar archivo TXT de salida

El fragmento de código siguiente explica estos dos enfoques diferentes para convertir HTML a texto sin formato en C#:

String text = "";
String content = File.ReadAllText(dataDir + "Test2.html");
// Crear una instancia de documento HTML
var document = new HTMLDocument(content, "");

// La segunda forma de recopilar elementos de texto del documento utilizando un método personalizado
text = GetContent(document.Body);

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

// La tercera forma de recopilar elementos de texto del documento utilizando la propiedad 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();
}

Convierta URL de página web HTML a texto usando C#

Ya hemos cubierto la conversión de HTML a texto de la página web fuera de línea donde se requiere que exista el archivo HTML descargándolo en el disco. Avancemos un paso más allá donde ni siquiera necesita guardar el archivo HTML en el disco. Puede convertir directamente una página web especificando su URL en un archivo TXT usando C#. Por ejemplo, permítanos convertir la página del producto de Aspose.HTML for .NET API en un archivo TXT con los pasos a continuación:

  1. Inicialice el objeto HTMLDocument y especifique la URL
  2. Leer el contenido de texto del formato HTML
  3. Escriba el archivo TXT con el texto extraído de la página web

El siguiente código muestra cómo convertir URL de página web HTML a texto usando C#:

// Inicializar objeto HTMLDocument con URL
HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net");
            
// Leer el contenido de texto del formato HTML
String text = document.Body.TextContent;
            
// Escriba el archivo TXT con el texto extraído
File.WriteAllText("Webpage.txt", text);

Conclusión

En este artículo, hemos discutido cómo convertir archivos HTML a texto sin formato, extraer texto de HTML, así como una URL de página web en línea a formato de archivo TXT usando C#. Puede usar diferentes enfoques y no dude en ponerse en contacto con nosotros a través del Foro de soporte gratuito si necesita más ayuda.

Ver también

Sugerencia: puede que le interese un Conversor de texto a GIF gratuito que le permite generar animaciones a partir de textos.