Pentru a face datele XML disponibile pentru toate tipurile de browsere, putem transforma documentul XML pe server și trimite-l înapoi la browser ca XHTML.
O soluție Cross Browser
În capitolul precedent am explicat modul în care XSLT poate fi folosit pentru a transforma un document din XML în XHTML în browser. Am folosit un JavaScript și un parser XML pentru transformare. Cu toate acestea, acest lucru nu va funcționa într-un browser care nu are un parser XML.Pentru a face datele XML disponibile pentru toate tipurile de browsere, putem transforma documentul XML pe server și trimite înapoi la browser ca XHTML.
Acesta este un alt frumusete de XSLT. Unul dintre obiectivele de proiectare pentru XSLT a fost de a face posibilă transformarea datelor dintr-un format la altul pe un server, revenind date care pot fi citite la toate tipurile de browsere.
Fișierul XML și XSLT file
Uită-te la documentul XML pe care le-ați văzut în capitolele anterioare:
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>
Și foaia de stil XSL de însoțire:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Title</th>
<th style="text-align:left">Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title" /></td>
<td><xsl:value-of select="artist" /></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Notice that the XML file does not have a reference to the XSL file.
IMPORTANT: Fraza de mai sus indică faptul că un fișier XML poate fi transformat folosind mai multe foi de stil diferite XSL.
PHP Code: Transformarea XML pentru XHTML pe Server
Aici este codul sursă PHP necesar pentru a transforma fișierul XML pentru XHTML pe server:
<?php
// Load XML file
$xml = new DOMDocument;
$xml->load('cdcatalog.xml');
// Load XSL file
$xsl = new DOMDocument;
$xsl->load('cdcatalog.xsl');
//
Configure the transformer
$proc = new XSLTProcessor;
// Attach the xsl
rules
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
?>
Tip: Dacă nu știi cum să scrie PHP, vă rugăm studiul nostru tutorial PHP .
Vezi cum funcționează cu PHP .
Cod ASP: Transformarea XML pentru XHTML pe Server
Aici este codul sursă ASP necesare pentru a transforma fișierul XML pentru XHTML pe server:
<%
'Load XML file
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Load XSL file
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
%>
Tip: Dacă nu știi cum să scrie ASP, vă rugăm studiul nostru tutorial ASP .
A se vedea cum funcționează cu ASP .