Définition d'attributs dans un modèle HTML – Exemples en C#

Modèle HTML – HTML Template

Le modèle HTML est un fichier HTML standard qui contient des expressions en ligne spéciales, indiquées par des doubles crochets, qui font correspondre la source de données d’entrée au balisage de la page HTML. Lors du traitement du modèle, ces expressions en ligne seront remplacées par les valeurs de données correspondantes, conformément aux règles énoncées dans l’article HTML Template.

La bibliothèque Aspose.HTML for .NET vous permet de définir des attributs dans les modèles HTML et de contrôler la présence d’attributs lors du remplissage des modèles. L’article suivant vous montre comment utiliser cette fonctionnalité dans des exemples en C#.

Définir un attribut dans un modèle HTML

Les attributs sont utilisés pour les éléments HTML afin de fournir des informations supplémentaires sur un élément, de spécifier ses caractéristiques ou de définir des propriétés telles que l’identifiant, la classe, le style, etc. Ces attributs sont spécifiés dans la balise d’ouverture d’un élément HTML et peuvent être définis à l’aide de valeurs statiques ou de données dynamiques (expressions en ligne) :

Définir l’attribut checked pour les cases à cocher HTML

Prenons par exemple le modèle HTML suivant :

1<input type="checkbox" {{attr}} disabled />

Il s’agit d’un élément de formulaire checkbox qui possède un attribut disabled qui le rend non éditable et un label {{attr}} auquel on peut ajouter un attribut basé sur la source de données. Dans ce label, en utilisant la source de données suivante, nous allons définir l’attribut checked qui affichera une coche dans cette case à cocher HTML lorsqu’elle sera dessinée :

1<Data><attr>checked</attr></Data>

Un exemple complet de remplissage du modèle en C# ressemble à ceci :

 1// Bind XML data to HTML template and export as HTML and PNG using C#
 2
 3// Create a template with a string of HTML code
 4string htmlCode = "<input type=\"checkbox\" disabled {{attr}} />";
 5
 6// Set data for the template in XML format
 7string dataSource = "<Data><attr>checked</attr></Data>";
 8
 9// Convert template to HTML
10using (HTMLDocument htmlDocument = Converter.ConvertTemplate(htmlCode, string.Empty,
11           new TemplateData(new TemplateContentOptions(dataSource, TemplateContent.XML)),
12           new TemplateLoadOptions()))
13{
14    // Request the input checkbox element that we specified in the template
15    HTMLInputElement input = (HTMLInputElement)htmlDocument.GetElementsByTagName("input").First();
16
17    // Check if it has a checkmark 
18    Console.WriteLine("Checked: " + input.Checked);
19    Console.WriteLine("Attributes.Length: " + input.Attributes.Length);
20    Console.WriteLine("Attributes[0].Name: " + input.Attributes[0].Name);
21    Console.WriteLine("Attributes[1].Name: " + input.Attributes[1].Name);
22    Console.WriteLine("Attributes[2].Name: " + input.Attributes[2].Name);
23
24    /*
25    This example produces the following results:
26
27    Checked: True
28    Attributes.Length: 3
29    Attributes[0].Name: type
30    Attributes[1].Name: disabled
31    Attributes[2].Name: checked
32    */
33
34    // Save the HTML document to a file
35    htmlDocument.Save(Path.Combine(OutputDir, "out-checked.html"));
36
37    // Prepare a path to the output image file
38    string outputPath = Path.Combine(OutputDir, "out-checked.png"); 
39    
40    // Convert HTML to PNG using RenderTo() method
41    htmlDocument.RenderTo(new ImageDevice(new ImageRenderingOptions(), outputPath));
42}

Examinons de plus près cet extrait de code C# :

  1. Dans l’exemple, nous créons un modèle HTML à partir de zéro, c’est-à-dire à partir de la chaîne de code. Nous commençons donc par préparer le code HTML.
  2. Nous utilisons la méthode ConvertTemplate(content, baseUrl, data, options) pour convertir le modèle. Cette méthode prend quatre paramètres et convertit une chaîne de contenu HTML en un objet htmlDocument complètement formé :
    • content (htmlCode) – a string with HTML code to use as the template;
    • baseUrl (string.Empty) – an empty string in this example because this parameter is not used;
    • data (TemplateData) – the data source for populating the template. In this case, it is an XML string stored in the dataSource variable;
    • options (TemplateLoadOptions) – load options for the template. You can create it using the TemplateLoadOptions() constructor.
  3. Après avoir créé le document HTML, nous accédons à un élément <input> dans le document et vérifions qu’il possède les bons attributs, tels que checked dans ce cas :
    • We use the GetElementsByTagName() method to retrieve the first <input> element.
    • Then, we execute several assertions to check the properties of the <input> element. The first assertion, Assert.True(input.Checked), checks if the checkbox is checked. The following two assertions, Assert.Equal(3, input.Attributes.Length) and Assert.Equal("type", input.Attributes[0].Name), check the number of attributes and the name of the first attribute of the input element, respectively, and so on.
  4. Pour convertir un document HTML en un fichier image, nous utilisons la méthode RenderTo().
  5. Enfin, nous appelons la méthode Save(path). Le document HTML est enregistré dans le fichier out-checked.html. Le contenu de ce fichier peut être vu ci-dessous :
1<html>
2    <head>
3    </head>
4    <body>
5        <input type="checkbox" disabled="" checked="">
6    </body>
7</html>

Case à cocher vide

Si vous souhaitez créer un document basé sur ce modèle avec un élément case à cocher vide, utilisez la source de données suivante :

1<Data><attr></attr></Data>

Comme vous pouvez le constater, pour obtenir un tel résultat, il suffit de passer une valeur vide. L’exemple de conversion complet ressemble à ceci :

 1// Populate HTML template with XML data using attribute control in C#
 2
 3// Create a template with a string of HTML code
 4string htmlCode = "<input type=\"checkbox\" disabled {{attr}} />";
 5
 6// Create an empty data source that won't set an attribute
 7string dataSource = "<Data><attr></attr></Data>";
 8
 9// Convert template to HTML
10using (HTMLDocument htmlDocument = Converter.ConvertTemplate(htmlCode, string.Empty,
11           new TemplateData(new TemplateContentOptions(dataSource, TemplateContent.XML)),
12           new TemplateLoadOptions()))
13{
14    // Request the input checkbox element that we specified in the template
15    HTMLInputElement input = (HTMLInputElement)htmlDocument.GetElementsByTagName("input").First();
16
17    // Сheck if the checkbox is checked - it should not be there
18    Console.WriteLine("Checked: " + input.Checked);
19    Console.WriteLine("Attributes.Length: " + input.Attributes.Length);
20    Console.WriteLine("Attributes[0].Name: " + input.Attributes[0].Name);
21    Console.WriteLine("Attributes[1].Name: " + input.Attributes[1].Name);
22   
23    /*
24    This example produces the following results:
25
26    Checked: False
27    Attributes.Length: 2
28    Attributes[0].Name: type
29    Attributes[1].Name: disabled
30    */
31
32    // Save the HTML document to a file
33    htmlDocument.Save(Path.Combine(OutputDir, "out-unchecked.html"));
34
35    // Prepare a path to the output file
36    string outputPath = Path.Combine(OutputDir, "out-unchecked.png");
37
38    // Convert HTML to PNG
39    htmlDocument.RenderTo(new ImageDevice(new ImageRenderingOptions(), outputPath));
40}

Aspose.HTML propose des Convertisseurs gratuits en ligne pour convertir des fichiers HTML, XHTML, MHTML, EPUB, XML et Markdown dans une variété de formats populaires. Vous pouvez facilement convertir HTML en PDF, HTML en Image, EPUB en PDF, SVG en PDF, MHTML en PDF, ou MD en HTML. Il vous suffit de sélectionner un fichier, de choisir le format à convertir et le tour est joué. Essayez gratuitement nos convertisseurs puissants dès maintenant !

Texte “Convertisseurs gratuits en ligne”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.