Serverseitige Umwandlung

ASP.NET WebForms + XSLT‑Umwandlung

Ablauf

  1. Das C#‑Backend liest eineXML‑Zeichenkette (Schülerdaten) aus der Datenbank aus
  2. Laden der XML‑Zeichenkette in einen MemoryStream und Erstellen eines XPathDocument
  3. Einlesen des Stylesheets student.xsl vom physischen Pfad im Projekt
  4. Ausführen der XSLT‑Umwandlung mit XslCompiledTransform zur Ausgabe einer HTML‑Zeichenkette
  5. Übergeben des erzeugten HTML an die Frontend‑Seite zum Rendern (selbst implementierbar. XSL eignet sich nicht nur für Web‑Anwendungen, sondern auch als Template‑Engine)

Bereiten Sie das vollständige XML‑Dokument selbst vor

Datei student.xsl

Legen Sie diese Datei im Projekt ab

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- Ausgabeformat HTML mit UTF‑8‑Kodierung zur Vermeidung von Zeichenfehlern -->
    <xsl:output method="html" encoding="UTF-8" indent="yes"/>

    <xsl:template match="/">
        <html>
            <head>
                <meta charset="UTF-8"/>
                <title>Schülerliste</title>
            </head>
            <body>
                <ul>
                    <!-- Pfad passend zur XML‑Struktur: Wurzel → StudentDB → Schüler -->
                    <xsl:for-each select="StudentDB/Schüler">
                        <li>
                            Nr.:<xsl:value-of select="position()"/>
                            Name:<xsl:value-of select="Name"/>
                        </li>
                    </xsl:for-each>
                </ul>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>Code-Sprache: HTML, XML (xml)

C#‑Umwandlungscode

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. XML‑Zeichenkette aus Datenbank über BLL‑Schicht beziehen
                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");

                    // Prüfen ob XSL‑Datei vorhanden ist
                    if (!File.Exists(xslPath))
                    {
                        studentHtml = "XSL‑Stylesheet‑Datei nicht gefunden!";
                        return;
                    }

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

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

                    // 【Wichtig】Zuweisung zur Seitenvariable
                    studentHtml = sb.ToString();
                }
            }
        }
    }
}Code-Sprache: C# (cs)

Verwenden Sie Platzhalter, um das Ergebnis in einer aspx‑Seite auszugeben

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="XslDemo.Web.Default" %>
<!DOCTYPE html>
<html>
<body>
    <%--Ausgabe des durch XSLT erzeugten HTML--%>
    <%=studentHtml %>
</body>
</html>Code-Sprache: HTML, XML (xml)

Serverseitige Umwandlung

Previous:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert