XSLT در سرور

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

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

در فصل‌های قبلی، ما روش‌های استفاده از XSLT برای تبدیل XML به XHTML در مرورگرها را توضیح داده‌ایم. ما یک جاوااسکریپت برای انجام این تبدیل با استفاده از analizگر XML ایجاد کرده‌ایم. راه‌حل جاوااسکریپت در مرورگرهایی که analizگر 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 تبدیل می‌کند:

<%
بارگذاری XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
بارگذاری XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
فایل تغییر یافته
Response.Write(xml.transformNode(xsl))
%>

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

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

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