Si es un programador de C# que busca una forma eficiente de trabajar con archivos HTML, este artículo es para usted. Explicaremos los conceptos básicos de cómo funciona C# con archivos HTML, desde crearlos desde cero hasta leer y editar documentos existentes. En este artículo, aprenderemos a crear, leer y editar archivos HTML en C#.
HTML (Hyper Text Markup Language) es un lenguaje utilizado para crear sitios web y páginas web. C#, por otro lado, es un lenguaje de programación orientado a objetos que se utiliza para crear aplicaciones. Un archivo HTML contiene etiquetas de marcado que se utilizan para formatear la estructura de una página web para mostrarla en los navegadores. Podemos manipular fácilmente archivos HTML mediante programación en aplicaciones .NET. En este artículo, exploraremos cómo usar C# para leer, escribir y editar archivos HTML. Veremos formas de analizar el código HTML para elementos específicos y crear nuevos elementos desde cero o editar los existentes. ¡Vamos a empezar!
En este artículo se tratarán los siguientes temas:
- API de C# para crear, leer y editar archivos HTML
- Crear un archivo HTML
- Leer un archivo HTML
- Editar un archivo HTML
- Agregar contenido HTML sin formato en C#
API de C# para crear, leer y editar archivos HTML
Para crear, leer y editar archivos HTML, usaremos la API Aspose.HTML for .NET. Es una API avanzada de procesamiento de HTML que permite la creación, modificación y extracción de datos de documentos HTML. También permite convertir y renderizar documentos HTML sin ningún software externo.
La clase HTMLDocument de la API representa un documento HTML o la página HTML que vemos en el navegador. El método CreateElement() de esta clase crea el elemento HTML especificado por tagName. El método CreateTextNode(string) crea un nodo de texto dada la cadena especificada. El método AppendChild() de la interfaz Node agrega un nodo al final de la lista de elementos secundarios de un nodo principal especificado. El método Save() guarda el archivo de salida. También puede leer más sobre espacio de nombres DOM en la documentación.
Descargue la DLL de la API o instálela mediante NuGet.
PM> Install-Package Aspose.Html
Crear un archivo HTML en C#
Podemos crear fácilmente un archivo HTML siguiendo los pasos que se detallan a continuación:
- En primer lugar, cree una instancia de la clase HTMLDocument.
- A continuación, llame al método CreateElement() para crear elementos como encabezado, párrafo, texto, etc.
- Luego, llame al método CreateTextNode() para agregar el nodo de texto.
- A continuación, agregue el nodo creado al elemento mediante el método AppendChild().
- Después de eso, adjunte elementos al cuerpo del documento usando el método HTMLDocument.Body.AppendChild().
- Repita los pasos anteriores para agregar más elementos.
- Finalmente, guarde el documento HTML utilizando el método Save(). Toma la ruta del archivo de salida como argumento.
El siguiente ejemplo de código muestra cómo crear un archivo HTML usando C#.
// Este ejemplo de código demuestra cómo crear un documento HTML.
// Crear un documento HTML vacío
var document = new HTMLDocument();
// Agregar encabezado
// 1. Crea un elemento de encabezado
var h2 = (HTMLHeadingElement)document.CreateElement("h2");
// 2. Crea un elemento de texto
var text = document.CreateTextNode("This is Sample Heading!");
// 3. agregar elemento de texto al encabezado
h2.AppendChild(text);
// 4. Agregar encabezado to the document
document.Body.AppendChild(h2);
// Agregar párrafo
// 1. Crea un elemento de párrafo
var p = (HTMLParagraphElement)document.CreateElement("p");
// 2. Establecer un atributo personalizado
p.SetAttribute("id", "first-paragraph");
// 3. Crea un nodo de texto
var paraText = document.CreateTextNode("This is first paragraph. ");
// 4. Agrega el texto al párrafo
p.AppendChild(paraText);
// 5. Adjuntar párrafo al cuerpo del documento
document.Body.AppendChild(p);
// Agregar lista ordenada
// Crear un elemento de párrafo
var list = (HTMLOListElement)document.CreateElement("ol");
// Añadir li artículo 1
var item1 = (HTMLLIElement)document.CreateElement("li");
item1.AppendChild(document.CreateTextNode("First list item."));
// Añadir li artículo 2
var item2 = (HTMLLIElement)document.CreateElement("li");
item2.AppendChild(document.CreateTextNode("Second list item."));
// Agregar elementos li a la lista
list.AppendChild(item1);
list.AppendChild(item2);
// Adjuntar lista al cuerpo del documento
document.Body.AppendChild(list);
// Guarde el documento HTML en un archivo
document.Save(@"C:\Files\html\create-new-document.html");
Leer un archivo HTML en C#
En la sección anterior, creamos un archivo HTML. Ahora, cargaremos el archivo y leeremos su contenido siguiendo los pasos que se detallan a continuación:
- Cargue un archivo HTML existente utilizando la clase HTMLDocument.
- Leer y mostrar el contenido de HTMLDocument.DocumentElement.OuterHTML.
El siguiente ejemplo de código muestra cómo leer un archivo HTML usando C#.
// Este ejemplo de código demuestra cómo leer un archivo HTML
// Preparar una ruta de salida para guardar un documento
string documentPath = @"C:\Files\html\create-new-document.html";
// Cargar un archivo HTML
var document = new HTMLDocument(documentPath);
// Escribir el contenido del documento en el flujo de salida
Console.WriteLine(document.DocumentElement.OuterHTML);
<html><head></head><body><h2>This is Sample Heading!</h2><p id="first-paragraph">This is first paragraph. </p><ol><li>First list item.</li><li>Second list item.</li></ol></body></html>
Editar un archivo HTML en C#
También podemos actualizar el contenido de los archivos HTML. Podemos agregar más nodos/elementos siguiendo los pasos mencionados anteriormente. Sin embargo, podemos modificar las notas/elementos existentes siguiendo los pasos que se detallan a continuación:
- Cargue un archivo HTML existente utilizando la clase HTMLDocument.
- A continuación, llame al método CreateTextNode() para agregar el nodo de texto.
- A continuación, obtenga el elemento del primer párrafo mediante el método GetElementsByTagName(). Toma “p” como argumento.
- Después de eso, llame al método AppendChild() para agregar el nodo de texto.
- Repita los pasos anteriores para modificar más elementos.
- Finalmente, guarde el documento HTML utilizando el método Save(). Toma la ruta del archivo de salida como argumento.
El siguiente ejemplo de código muestra cómo modificar un archivo HTML usando C#.
// Este ejemplo de código demuestra cómo editar un contenido de esiting de un archivo HTML.
// Preparar una ruta de salida para guardar un documento
string documentPath = @"C:\Files\html\create-new-document.html";
// Crear una instancia de un documento HTML
var document = new HTMLDocument(documentPath);
// Crear un nodo de texto
var oldParaText = document.CreateTextNode("This is old first paragraph.");
// Obtener el elemento del primer párrafo
var p = (HTMLParagraphElement)document.GetElementsByTagName("p").First();
p.AppendChild(oldParaText);
// Guarde el documento HTML en un archivo
document.Save(@"C:\Files\html\modify.html");
El siguiente ejemplo de código muestra un ejemplo más complejo en el que agregamos nuevos elementos y modificamos los existentes.
// Este ejemplo de código demuestra cómo y editar elementos en un archivo HTML de ubicación.
// Preparar una ruta de salida para guardar un documento
string documentPath = @"C:\Files\html\create-new-document.html";
// Crear una instancia de un documento HTML
var document = new HTMLDocument(documentPath);
// Cree un elemento de estilo y asigne el color verde a todos los elementos cuyo nombre de clase sea igual a 'gr'.
var style = document.CreateElement("style");
style.TextContent = ".rd { color: red }";
// Encuentre el elemento de encabezado del documento y agregue el elemento de estilo al encabezado
var head = document.GetElementsByTagName("head").First();
head.AppendChild(style);
// Crear un nodo de texto
var oldParaText = document.CreateTextNode("This is old first paragraph.");
// Cree un elemento de párrafo con el nombre de clase 'gr'.
var p = (HTMLParagraphElement)document.GetElementsByTagName("p").First();
p.ClassName = "rd";
p.AppendChild(oldParaText);
// Crear un elemento de párrafo
var newPara = (HTMLParagraphElement)document.CreateElement("p");
// Crear un nodo de texto
var paraText = document.CreateTextNode("This is second paragraph. ");
// Añadir el texto al párrafo.
newPara.AppendChild(paraText);
// Adjuntar párrafo al cuerpo del documento
document.Body.AppendChild(newPara);
// Guarde el documento HTML en un archivo
document.Save(@"C:\Files\html\edit.html");
Agregar contenido HTML sin procesar en C#
Podemos agregar o editar elementos agregando manualmente código HTML como contenido usando la propiedad InnerHTML de un elemento. Podemos agregar HTML sin procesar siguiendo los pasos que se detallan a continuación:
- En primer lugar, cree una instancia de la clase HTMLDocument.
- A continuación, establezca el contenido del elemento Body.InnerHTML como una cadena HTML sin formato.
- Finalmente, guarde el documento HTML utilizando el método Save(). Toma la ruta del archivo de salida como argumento.
El siguiente ejemplo de código muestra cómo agregar contenido HTML sin formato al archivo mediante C#.
// Este ejemplo de código muestra cómo agregar HTML sin procesar al cuerpo HTML.
// Crear una instancia de un documento HTML
using (var document = new HTMLDocument())
{
// Escriba el contenido del documento HTML en la salida de la consola
Console.WriteLine(document.DocumentElement.OuterHTML);
// Establecer el contenido del elemento del cuerpo
document.Body.InnerHTML = "<p>HTML is the standard markup language for Web pages.</p>";
/// Guardar el documento HTML en un archivo
document.Save(@"C:\Files\html\using-innerHTML.html");
}
Obtenga una licencia gratis
Puede obtener una licencia temporal gratuita para probar Aspose.HTML for .NET sin limitaciones de evaluación.
Conclusión
En este artículo, hemos aprendido a:
- crear documentos HTML mediante programación;
- cargar un documento HTML existente desde la ruta del disco local;
- leer el HTML del archivo cargado;
- agregar contenido nuevo al archivo HTML existente;
- modificar el contenido existente en C#.
Además de crear, leer y editar archivos HTML en C#, puede obtener más información sobre Aspose.HTML para la API de .NET mediante documentación. En caso de cualquier ambigüedad, no dude en contactarnos en nuestro foro de soporte gratuito.