XSLT - در سرور

چون همه مرورگرها از XSLT پشتیبانی نمی‌کنند، راه‌حل دیگری این است که تبدیل XML به XHTML را بر روی سرور انجام دهیم.

راه‌حل‌های چند مرورگری

در فصل‌های قبلی، ما روش‌های استفاده از XSLT برای تبدیل XML به XHTML در مرورگرها را توضیح دادیم. ما یک جاوااسکریپت برای انجام این تبدیل با استفاده از پردازنده XML ایجاد کردیم. راه‌حل جاوااسکریپت در مرورگرهایی که پردازنده XML ندارند، کار نمی‌کند. برای اینکه داده‌های XML برای همه نوع مرورگر مناسب باشد، باید فایل‌های XML را بر روی سرور تبدیل کنیم و سپس آن‌ها را به عنوان XHMTL به مرورگرها ارسال کنیم.

این یکی از مزایای XSLT است. یکی از اهداف طراحی XSLT این است که تبدیل داده‌ها از یک فرمت به فرمت دیگر بر روی سرور ممکن شود و داده‌های خوانا برای همه نوع مرورگرها بازگردانده شود.

فایل‌های XML و XSL

لطفاً به این XML مستند مراجعه کنید که در فصل‌های قبلی نمایش داده شده است:

<?xml version="1.0" encoding="ISO-8859-1"?>
<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>

این فایل XML را مشاهده کنید.

و قالب‌های XSL همراه آن:

<?xml version="1.0" encoding="ISO-8859-1"?>
<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 align="left">Title</th> 
        <th 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>

این فایل XSL را مشاهده کنید.

لطفاً توجه داشته باشید که این فایل XML شامل ارجاع به فایل‌های XSL نیست.

مatters to consider:این جمله نشان می‌دهد که فایل XML می‌تواند با استفاده از چندین قالب XSL مختلف تبدیل شود.

در سرور XML به XHTML تبدیل می‌شود

این کد منبعی است که در سرور XML فایل را به XHTML تبدیل می‌کند:

<%
Load XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Load XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
%>

توجه:اگر نمی‌دانید چگونه ASP بنویسید، می‌توانید ازآموزش ASP》。

کد اولین یک نمونه از پردازشگر XML مایکروسافت را ایجاد می‌کند و فایل XML را به حافظه بارگذاری می‌کند. کد دومین یک نمونه دیگر از پردازشگر ایجاد می‌کند و فایل XSL را به حافظه بارگذاری می‌کند. آخرین خط کد فایل XSL را برای تبدیل فایل XML استفاده می‌کند و نتیجه را به عنوان XHTML به مرورگر شما ارسال می‌کند. کار انجام شد!

ببینید که چگونه کار می‌کند.