Criar, ler e editar arquivos HTML em C#

Se você é um programador C# procurando uma maneira eficiente de trabalhar com arquivos HTML, este artigo é para você. Explicaremos o básico de como o C# funciona com arquivos HTML, desde a criação do zero até a leitura e edição de documentos existentes. Neste artigo, aprenderemos como criar, ler e editar arquivos HTML em C#.

HTML (Hyper Text Markup Language) é uma linguagem usada para criar sites e páginas da web. C#, por outro lado, é uma linguagem de programação orientada a objetos usada para criar aplicativos. Um arquivo HTML contém tags de marcação usadas para formatar a estrutura de uma página da Web para exibição em navegadores. Podemos facilmente manipular arquivos HTML programaticamente em aplicativos .NET. Neste artigo, exploraremos como usar C# para ler, gravar e editar arquivos HTML. Veremos maneiras de analisar o código HTML para elementos específicos e criar novos elementos do zero ou editar os existentes. Vamos começar!

Os seguintes tópicos serão abordados neste artigo:

  1. API C# para criar, ler e editar arquivos HTML
  2. Criar um arquivo HTML
  3. Leia um arquivo HTML
  4. Editar um arquivo HTML
  5. Adicionar conteúdo HTML bruto em C#

API C# para criar, ler e editar arquivos HTML

Para criar, ler e editar arquivos HTML, usaremos a API Aspose.HTML for .NET. É uma API avançada de processamento de HTML que permite a criação, modificação e extração de dados de documentos HTML. Também permite converter e renderizar documentos HTML sem nenhum software externo.

A classe HTMLDocument da API representa um documento HTML ou a página HTML que vemos no navegador. O método CreateElement() desta classe cria o elemento HTML especificado por tagName. O método CreateTextNode(string) cria um nó Text dado a string especificada. O método AppendChild() da interface Node adiciona um nó ao final da lista de filhos de um nó pai especificado. O método Save() salva o arquivo de saída. Você também pode ler mais sobre DOM namespace na documentação.

Por favor baixe a DLL da API ou instale-a usando NuGet.

PM> Install-Package Aspose.Html

Criar um arquivo HTML em C#

Podemos criar facilmente um arquivo HTML seguindo as etapas abaixo:

  1. Em primeiro lugar, crie uma instância da classe HTMLDocument.
  2. Em seguida, chame o método CreateElement() para criar elementos como título, parágrafo, texto, etc.
  3. Em seguida, chame o método CreateTextNode() para adicionar o nó de texto.
  4. Em seguida, anexe o nó criado ao elemento usando o método AppendChild().
  5. Depois disso, anexe os elementos ao corpo do documento usando o método HTMLDocument.Body.AppendChild().
  6. Repita as etapas acima para adicionar mais elementos.
  7. Finalmente, salve o documento HTML usando o método Save(). Ele usa o caminho do arquivo de saída como um argumento.

O exemplo de código a seguir mostra como criar um arquivo HTML usando C#.

// Este exemplo de código demonstra como criar um documento HTML.

// Crie um documento HTML vazio
var document = new HTMLDocument();

// Adicionar título
// 1. Crie um elemento de título
var h2 = (HTMLHeadingElement)document.CreateElement("h2");

// 2. Crie um elemento de texto
var text = document.CreateTextNode("This is Sample Heading!");

// 3. adicione elemento de texto ao título
h2.AppendChild(text);

// 4. Adicionar título to the document
document.Body.AppendChild(h2);

// Adicionar parágrafo
// 1. Crie um elemento de parágrafo
var p = (HTMLParagraphElement)document.CreateElement("p");

// 2. Defina um atributo personalizado
p.SetAttribute("id", "first-paragraph");

// 3. Crie um nó de texto
var paraText = document.CreateTextNode("This is first paragraph. ");

// 4. Adicione o texto ao parágrafo
p.AppendChild(paraText);

// 5. Anexe o parágrafo ao corpo do documento 
document.Body.AppendChild(p);

// Adicionar Lista Ordenada
// Criar um elemento de parágrafo
var list = (HTMLOListElement)document.CreateElement("ol");

// Adicionar li item 1
var item1 = (HTMLLIElement)document.CreateElement("li");
item1.AppendChild(document.CreateTextNode("First list item."));

// Adicionar li item 2
var item2 = (HTMLLIElement)document.CreateElement("li");
item2.AppendChild(document.CreateTextNode("Second list item."));

// Adicionar itens li à lista
list.AppendChild(item1);
list.AppendChild(item2);

// Anexar lista ao corpo do documento 
document.Body.AppendChild(list);

// Salve o documento HTML em um arquivo 
document.Save(@"C:\Files\html\create-new-document.html");
Criar-um-arquivo-HTML-no-CSharp

Crie um arquivo HTML em C#

Ler um arquivo HTML em C#

Na seção anterior, criamos um arquivo HTML. Agora, vamos carregar o arquivo e ler seu conteúdo seguindo os passos abaixo:

  1. Carregue um arquivo HTML existente usando a classe HTMLDocument.
  2. Leia e mostre o conteúdo do HTMLDocument.DocumentElement.OuterHTML.

O exemplo de código a seguir mostra como ler um arquivo HTML usando C#.

// Este exemplo de código demonstra como ler um arquivo HTML
// Prepare um caminho de saída para salvar um documento
string documentPath = @"C:\Files\html\create-new-document.html";

// Carregar um arquivo HTML
var document = new HTMLDocument(documentPath);

// Grave o conteúdo do documento no fluxo de saída
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 um arquivo HTML em C#

Também podemos atualizar o conteúdo dos arquivos HTML. Podemos adicionar mais nós/elementos seguindo as etapas mencionadas acima. No entanto, podemos modificar as notas/elementos existentes seguindo as etapas abaixo:

  1. Carregue um arquivo HTML existente usando a classe HTMLDocument.
  2. Em seguida, chame o método CreateTextNode() para adicionar o nó de texto.
  3. Em seguida, obtenha o primeiro elemento de parágrafo usando o método GetElementsByTagName(). Leva “p” como argumento.
  4. Depois disso, chame o método AppendChild() para anexar o nó de texto.
  5. Repita as etapas acima para modificar mais elementos.
  6. Finalmente, salve o documento HTML usando o método Save(). Ele usa o caminho do arquivo de saída como um argumento.

O exemplo de código a seguir mostra como modificar um arquivo HTML usando C#.

// Este exemplo de código demonstra como editar um conteúdo existente de um arquivo HTML.
// Prepare um caminho de saída para salvar um documento
string documentPath = @"C:\Files\html\create-new-document.html";

// Criar uma instância de um documento HTML
var document = new HTMLDocument(documentPath);

// Criar um nó de texto
var oldParaText = document.CreateTextNode("This is old first paragraph.");

// Obter elemento do primeiro parágrafo
var p = (HTMLParagraphElement)document.GetElementsByTagName("p").First();
p.AppendChild(oldParaText);

// Salve o documento HTML em um arquivo 
document.Save(@"C:\Files\html\modify.html");
Edite-um-Arquivo-HTML-no-CSharp

Editar um arquivo HTML em C#

O exemplo de código a seguir mostra um exemplo mais complexo no qual estamos adicionando novos elementos e modificando os existentes.

// Este exemplo de código demonstra como e editar elementos em um arquivo HTML existente.
// Prepare um caminho de saída para salvar um documento
string documentPath = @"C:\Files\html\create-new-document.html";

// Criar uma instância de um documento HTML
var document = new HTMLDocument(documentPath);

// Crie um elemento de estilo e atribua a cor verde para todos os elementos com nome de classe igual a 'gr'.
var style = document.CreateElement("style");
style.TextContent = ".rd { color: red }";

// Encontre o elemento de cabeçalho do documento e anexe o elemento de estilo ao cabeçalho
var head = document.GetElementsByTagName("head").First();
head.AppendChild(style);

// Criar um nó de texto
var oldParaText = document.CreateTextNode("This is old first paragraph.");

// Crie um elemento de parágrafo com o nome de classe 'gr'.
var p = (HTMLParagraphElement)document.GetElementsByTagName("p").First();
p.ClassName = "rd";
p.AppendChild(oldParaText);

// Criar um elemento de parágrafo
var newPara = (HTMLParagraphElement)document.CreateElement("p");

// Criar um nó de texto
var paraText = document.CreateTextNode("This is second paragraph. ");

// Adicione o texto ao parágrafo
newPara.AppendChild(paraText);

// Anexar parágrafo ao corpo do documento 
document.Body.AppendChild(newPara);

// Salve o documento HTML em um arquivo 
document.Save(@"C:\Files\html\edit.html");
Adicionar-editar-elementos-no-arquivo-HTML-usando-CSharp

Adicionar e editar elementos em um arquivo HTML usando C#

Adicionar conteúdo HTML bruto em C#

Podemos adicionar ou editar elementos adicionando manualmente o código HTML como conteúdo usando a propriedade InnerHTML de um elemento. Podemos adicionar HTML bruto seguindo as etapas abaixo:

  1. Em primeiro lugar, crie uma instância da classe HTMLDocument.
  2. Em seguida, defina o conteúdo do elemento Body.InnerHTML como string HTML bruta.
  3. Finalmente, salve o documento HTML usando o método Save(). Ele usa o caminho do arquivo de saída como um argumento.

O exemplo de código a seguir mostra como adicionar conteúdo HTML bruto ao arquivo usando C#.

// Este exemplo de código demonstra como adicionar HTML bruto ao corpo HTML.
// Criar uma instância de um documento HTML
using (var document = new HTMLDocument())
{
    // Escreva o conteúdo do documento HTML na saída do console
    Console.WriteLine(document.DocumentElement.OuterHTML); 

    // Defina o conteúdo do elemento do corpo
    document.Body.InnerHTML = "<p>HTML is the standard markup language for Web pages.</p>";

    /// Salve o documento HTML em um arquivo 
    document.Save(@"C:\Files\html\using-innerHTML.html");
}
Add-Raw-HTML-Content-in-CSharp

Adicionar HTML bruto em um arquivo HTML usando C#

Obtenha licença gratuita

Você pode obter uma licença temporária gratuita para experimentar o Aspose.HTML para .NET sem limitações de avaliação.

Conclusão

Neste artigo, aprendemos como:

  • criar documentos HTML programaticamente;
  • carregar um documento HTML existente do caminho do disco local;
  • leia o HTML do arquivo carregado;
  • adicionar novo conteúdo ao arquivo HTML existente;
  • modificar o conteúdo existente em C#.

Além de criar, ler e editar arquivos HTML em C#, você pode aprender mais sobre Aspose.HTML para .NET API usando documentação. Em caso de ambiguidade, sinta-se à vontade para nos contatar em nosso fórum de suporte gratuito.

Veja também