Transformation côté serveur

ASP.NET WebForms + Transformation XSLT

Déroulement

  1. Le backend C# récupère une chaîne XML (données des étudiants) depuis la base de données
  2. Charger la chaîne XML dans un MemoryStream et instancier un XPathDocument
  3. Lire la feuille de style student.xsl située sur le chemin physique du projet
  4. Exécuter la transformation XSLT avec XslCompiledTransform pour produire une chaîne HTML
  5. Envoyer le HTML généré vers la page frontale pour l’affichage (à implémenter vous‑même. XSL ne se limite pas au web, il peut servir de moteur de gabarit)

Préparez votre document XML complet

Fichier student.xsl

Placez‑le dans votre projet

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- Sortie HTML encodée UTF‑8 pour éviter les caractères corrompus -->
    <xsl:output method="html" encoding="UTF-8" indent="yes"/>

    <xsl:template match="/">
        <html>
            <head>
                <meta charset="UTF-8"/>
                <title>Liste des étudiants</title>
            </head>
            <body>
                <ul>
                    <!-- Chemin correspondant au XML : racine → StudentDB → étudiant -->
                    <xsl:for-each select="StudentDB/étudiant">
                        <li>
                            N°:<xsl:value-of select="position()"/>
                            Nom:<xsl:value-of select="nom"/>
                        </li>
                    </xsl:for-each>
                </ul>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>Langage du code : HTML, XML (xml)

Transformation en C#

using System;
using System.Text;
using System.IO;
using System.Xml.XPath;
using System.Xml.Xsl;

namespace XslDemo.Web
{
    public partial class Default : System.Web.UI.Page
    {
        protected string studentHtml = string.Empty;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //1. Récupérer la chaîne XML renvoyée par la base de données via la couche BLL
                string xml = new BLL.student().GetAllListXml();
                byte[] arr = Encoding.UTF8.GetBytes(xml);
                using (MemoryStream stream = new MemoryStream(arr))
                {
                    XPathDocument xpd = new XPathDocument(stream);
                    string xslPath = Context.Server.MapPath("/student.xsl");

                    // Vérifier l’existence du fichier XSL
                    if (!File.Exists(xslPath))
                    {
                        studentHtml = "Le fichier de style XSL est introuvable !";
                        return;
                    }

                    XslCompiledTransform tran = new XslCompiledTransform();
                    tran.Load(xslPath);

                    StringBuilder sb = new StringBuilder();
                    tran.Transform(xpd, null, new StringWriter(sb));

                    // 【Point clé】Affecter à la variable de page
                    studentHtml = sb.ToString();
                }
            }
        }
    }
}Langage du code : C# (cs)

Utilisez un espace réservé pour afficher le résultat dans une page aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="XslDemo.Web.Default" %>
<!DOCTYPE html>
<html>
<body>
    <%--Afficher le HTML issu de la transformation XSLT--%>
    <%=studentHtml %>
</body>
</html>Langage du code : HTML, XML (xml)

Transformation côté serveur

Previous:

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *