ASP.NET WebForms + Transformation XSLT
Déroulement
- Le backend C# récupère une chaîne XML (données des étudiants) depuis la base de données
- Charger la chaîne XML dans un
MemoryStreamet instancier unXPathDocument - Lire la feuille de style
student.xslsituée sur le chemin physique du projet - Exécuter la transformation XSLT avec
XslCompiledTransformpour produire une chaîne HTML - 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: XPath