Cargar HTML con Aspose.HTML for .NET

Aspose.HTML for .NET carga HTML en un objeto HTMLDocument , el árbol del documento en memoria que se utiliza para consultas DOM, cambios de contenido, extracción de datos, guardado y conversión. Los constructores de HTMLDocument aceptan una ruta local, una URL remota, una cadena de marcado o un flujo.


Cargar un archivo HTML en C#

Pasa una ruta de archivo local al constructor de HTMLDocument. Cuando termina la carga, el documento expone el DOM analizado. El siguiente ejemplo abre input.html y lee todo el marcado del elemento raíz mediante OuterHTML .

Código C# para cargar un documento HTML desde un archivo

using System;
using Aspose.Html;

using HTMLDocument document = new HTMLDocument("input.html");

string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);

Elegir el origen HTML y el constructor

  • Archivo local. Pasa la ruta del archivo cuando el HTML ya está en disco y los recursos relativos deben resolverse desde la ubicación del documento.
  • URL remota. Pasa una dirección HTTP o HTTPS cuando la aplicación deba cargar una página web y sus recursos externos permitidos.
  • Cadena de marcado. Pasa el código HTML junto con una URL base cuando el marcado ya esté disponible en memoria.
  • Flujo. Pasa un flujo legible y una URL base cuando el HTML proceda de una carga, un cuerpo de respuesta, una base de datos u otro origen en memoria.

Cargar HTML desde una URL en C#

El constructor que recibe una sola dirección puede abrir una página web remota. La carga mediante URL también procesa los recursos externos accesibles y permitidos por la configuración del entorno. Después, usa las propiedades y los métodos DOM para inspeccionar o modificar el documento.

Código C# para cargar un documento HTML desde una URL

using System;
using Aspose.Html;

using HTMLDocument document =
    new HTMLDocument("https://docs.aspose.com/html/net/creating-a-document/");

string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);

Cargar HTML desde una cadena en C#

Usa el constructor de dos argumentos cuando la aplicación ya tenga el marcado HTML en una cadena. El segundo argumento es la URL base para resolver imágenes, hojas de estilo, scripts, fuentes y enlaces relativos. Este ejemplo independiente usa "." como directorio actual; proporciona el directorio o la dirección web reales cuando el marcado incluya referencias relativas.

Código C# para crear un documento HTML desde una cadena

using System;
using Aspose.Html;

string markup = "<p>HTML loaded from a string</p>";

// Use the current directory as the base URL
string baseUrl = ".";

using HTMLDocument document = new HTMLDocument(markup, baseUrl);

string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);

Cargar HTML desde un flujo en C#

El constructor lee desde la posición actual del flujo. Si la aplicación acaba de escribir el HTML, vacía el búfer del escritor y restablece la posición antes de crear el documento. Mantén abierto el flujo hasta que HTMLDocument termine de leerlo. El ejemplo usa "." como base del directorio actual porque su marcado no contiene recursos relativos.

Código C# para cargar un documento HTML desde un flujo

using System;
using System.IO;
using System.Text;
using Aspose.Html;

using MemoryStream stream = new MemoryStream();

// Keep the stream open after disposing the writer
using (StreamWriter writer = new StreamWriter(stream, Encoding.UTF8, 1024, true))
{
    writer.Write("<p>HTML loaded from a stream</p>");
    writer.Flush();
}

// Reset the stream before HTMLDocument reads it
stream.Position = 0;

using HTMLDocument document =
    new HTMLDocument(stream, ".");

string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);

Comportamiento y consideraciones al cargar HTML

  • Los constructores analizan HTML para crear el DOM. El árbol resultante sigue las reglas de análisis de HTML. Una serialización posterior puede normalizar la estructura o el marcado, por lo que no debe esperarse una copia idéntica byte por byte.
  • La URL base controla los recursos relativos. Las cadenas y los flujos no tienen una ubicación propia. Indica la ubicación que debe resolver CSS, imágenes, scripts, fuentes y enlaces relativos.
  • Los constructores cargan de forma síncrona. Esperan al documento y a los recursos externos permitidos. Usa Navigate() y los eventos del documento cuando la aplicación necesite navegación asíncrona.
  • La carga remota depende del entorno. Las direcciones no válidas, redirecciones, requisitos de autenticación, fallos de red y restricciones de seguridad pueden impedir la carga.
  • Libera los documentos cargados. HTMLDocument mantiene el estado del documento y de los recursos. Una declaración o un bloque using libera ese estado al finalizar el procesamiento.

Documentación y referencia API para cargar HTML

Consulta Crear o cargar documentos HTML para ver constructores, uso de la URL base, navegación asíncrona y problemas habituales. Después de cargar, la guía HTML DOM explica cómo recorrer los nodos y Editar un documento HTML cómo cambiar contenido y atributos. Para un documento nuevo sin origen existente, consulta Crear HTML en C# .


Instalar Aspose.HTML for .NET

Instale Aspose.HTML for .NET desde NuGet con la CLI de .NET:

dotnet add package Aspose.HTML

También puede usar la interfaz del Administrador de paquetes NuGet o ejecutar Install-Package Aspose.HTML en la consola del Administrador de paquetes. Consulte la guía de instalación para configurar la biblioteca o solicite una licencia temporal para evaluar la API sin limitaciones.


Preguntas frecuentes sobre la carga de HTML

1. ¿Cómo cargo un documento HTML en C#?

Pasa una ruta local o una URL a un constructor de HTMLDocument. Para marcado almacenado en una cadena o un flujo, pasa el contenido junto con una URL base. El constructor analiza el origen y expone el DOM HTML resultante.

2. ¿La carga conserva exactamente el marcado HTML original?

No confíes en una identidad byte por byte. Aspose.HTML analiza el origen en un DOM y la serialización posterior puede normalizar elementos implícitos, codificación, espacios en blanco o estructura del marcado sin cambiar el modelo del documento.

3. ¿Puede Aspose.HTML cargar una página web de forma asíncrona?

Sí. Los constructores cargan de forma síncrona. La guía Cargar HTML de forma asíncrona muestra cómo crear el documento, suscribirse a OnReadyStateChange o OnLoad, llamar a Navigate() y aplicar un tiempo de espera definido por la aplicación.

4. ¿Por qué puede fallar la carga de un documento HTML remoto?

Entre las causas habituales se incluyen una URL no válida o inaccesible, redirecciones, autenticación, restricciones de red, recursos externos bloqueados o ajustes de seguridad. Comprueba la dirección y habilita solo el acceso de red necesario.

5. ¿Cómo puede una aplicación restringir recursos externos al cargar HTML?

Crea el documento con una Configuration que aplique los ajustes necesarios de seguridad y carga de recursos. Limita el acceso remoto a ubicaciones de confianza, especialmente cuando el HTML o la URL procedan de un usuario.

Flujos de trabajo relacionados con documentos HTML

Continúa con la creación, edición, selección de elementos o consultas estructuradas.