Charger du HTML avec Aspose.HTML for .NET
Aspose.HTML for .NET charge le HTML dans un HTMLDocument , l’arbre de document en mémoire utilisé pour les requêtes DOM, la modification du contenu, l’extraction de données, l’enregistrement et la conversion. Les constructeurs HTMLDocument acceptent un chemin local, une URL distante, une chaîne de balisage ou un flux.
Charger un fichier HTML en C#
Transmettez un chemin local au constructeur HTMLDocument. Une fois le chargement terminé, le document expose le DOM analysé. L’exemple ouvre input.html et lit tout le balisage de l’élément racine avec
OuterHTML
.
Code C# pour charger un document HTML depuis un fichier
using System;
using Aspose.Html;
using HTMLDocument document = new HTMLDocument("input.html");
string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);
Choisir la source HTML et le constructeur
- Fichier local. Transmettez son chemin lorsque le HTML existe sur le disque et que les ressources relatives doivent être résolues depuis son emplacement.
- URL distante. Transmettez une adresse HTTP ou HTTPS pour charger une page web et ses ressources externes autorisées.
- Chaîne de balisage. Transmettez le code HTML avec une URL de base lorsque le balisage est déjà en mémoire.
- Flux. Transmettez un flux lisible et une URL de base lorsque le HTML provient d’un téléversement, d’une réponse, d’une base de données ou d’une autre source en mémoire.
Charger du HTML depuis une URL en C#
Le constructeur qui reçoit une seule adresse peut ouvrir une page web distante. Le chargement traite aussi les ressources externes accessibles et autorisées par la configuration de l’environnement. Utilisez ensuite les propriétés et méthodes DOM pour examiner ou modifier le document.
Code C# pour charger un document HTML depuis une 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);
Charger du HTML depuis une chaîne en C#
Utilisez le constructeur à deux arguments lorsque l’application possède déjà le balisage HTML dans une chaîne. Le second argument est l’URL de base qui résout les images, feuilles de style, scripts, polices et liens relatifs. Cet exemple autonome emploie "." pour le répertoire courant; indiquez le répertoire ou l’adresse web réels si le balisage contient des références relatives.
Code C# pour créer un document HTML depuis une chaîne
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);
Charger du HTML depuis un flux en C#
Le constructeur lit à partir de la position actuelle du flux. Si l’application vient d’écrire le HTML, videz le tampon du writer et replacez la position au début avant de créer le document. Gardez le flux ouvert jusqu’à la fin de la lecture par HTMLDocument. L’exemple utilise "." comme base du répertoire courant, car le balisage ne contient aucune ressource relative.
Code C# pour charger un document HTML depuis un flux
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);
Comportement et points à considérer lors du chargement
- Les constructeurs analysent le HTML en DOM. L’arbre obtenu suit les règles d’analyse HTML. Une sérialisation ultérieure peut normaliser la structure ou le balisage; n’attendez donc pas une copie identique octet par octet.
- L’URL de base contrôle les ressources relatives. Une chaîne ou un flux n’a pas d’emplacement propre. Indiquez l’emplacement qui doit résoudre CSS, images, scripts, polices et liens relatifs.
- Les constructeurs chargent de manière synchrone. Ils attendent le document et les ressources externes autorisées. Utilisez
Navigate()et les événements du document pour une navigation asynchrone. - Le chargement distant dépend de l’environnement. URL incorrecte, redirections, authentification, problèmes réseau ou restrictions de sécurité peuvent empêcher le chargement.
- Libérez les documents chargés.
HTMLDocumentconserve l’état du document et des ressources. Une déclaration ou un blocusingle libère après le traitement.
Documentation et référence API sur le chargement HTML
Consultez Créer ou charger des documents HTML pour les constructeurs, l’URL de base, la navigation asynchrone et les problèmes courants. Après le chargement, le guide HTML DOM explique la navigation dans les nœuds et Modifier un document HTML la modification du contenu et des attributs. Pour un nouveau document sans source existante, utilisez Créer du HTML en C# .
Installer Aspose.HTML for .NET
Installez Aspose.HTML for .NET depuis NuGet avec l’interface CLI .NET :
dotnet add package Aspose.HTML
Vous pouvez également utiliser l’interface du gestionnaire de packages NuGet ou exécuter Install-Package Aspose.HTML dans la console du gestionnaire de packages. Consultez le
guide d’installation
pour la configuration, ou demandez une
licence temporaire
afin d’évaluer l’API sans limitations.
FAQ sur le chargement HTML
1. Comment charger un document HTML en C#?
Transmettez un chemin local ou une URL à un constructeur HTMLDocument. Pour un balisage dans une chaîne ou un flux, transmettez le contenu avec une URL de base. Le constructeur analyse la source et expose le DOM HTML obtenu.
2. Le chargement conserve-t-il exactement le balisage HTML source?
Ne comptez pas sur une identité octet par octet. Aspose.HTML analyse la source en DOM et la sérialisation peut normaliser les éléments implicites, l’encodage, les espaces ou la structure du balisage tout en conservant le modèle du document.
3. Aspose.HTML peut-il charger une page web de manière asynchrone?
Oui. Les constructeurs chargent de façon synchrone. Le guide
Charger du HTML de manière asynchrone
montre comment créer le document, s’abonner à OnReadyStateChange ou OnLoad, appeler Navigate() et définir un délai d’attente.
4. Pourquoi le chargement d’un document HTML distant peut-il échouer?
Les causes courantes incluent une URL incorrecte ou inaccessible, des redirections, une authentification, des restrictions réseau, des ressources bloquées ou des paramètres de sécurité. Vérifiez l’adresse et n’autorisez que l’accès réseau nécessaire.
5. Comment limiter les ressources externes lors du chargement HTML?
Créez le document avec une Configuration qui applique les paramètres requis de sécurité et de chargement. Limitez l’accès distant aux emplacements de confiance, surtout lorsque le HTML ou l’URL provient d’un utilisateur.
Flux de travail associés aux documents HTML
Poursuivez avec la création, la modification, la sélection d'éléments ou les requêtes structurées.