XSLT در مشتری

اگر مرورگر شما XSLT را پشتیبانی کند، می‌تواند از آن برای تبدیل مستند به XHTML استفاده کند.

راه‌حل JavaScript

در فصل‌های قبلی، ما به شما نشان دادیم که چگونه می‌توان با استفاده از XSLT یک مستند XML را به XHTML تبدیل کرد. ما این کار را از طریق اضافه کردن جدول‌های استایل XSL به فایل XML و انجام تبدیل توسط مرورگر انجام دادیم.

اگرچه این روش به خوبی عمل می‌کند، اما همیشه قرار دادن ارجاع به جدول‌های استایل در فایل‌های XML رضایت‌بخش نیست (مثلاً در مرورگرهایی که XSLT را نمی‌شناسند، این روش کار نمی‌کند).

روش کلی‌تر استفاده از JavaScript برای انجام تبدیل است.

با استفاده از JavaScript، می‌توانیم:

  • تست تأیید مرورگر
  • استفاده از جدول‌های استایل مختلف بر اساس نیاز مرورگر و کاربر

این جایی است که جذابیت XSLT نهفته است! یکی از اهداف طراحی 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 important:این جمله به این معناست که فایل XML می‌تواند با استفاده از چندین XSL نمونه‌سازی شود.

XML را به XHTML در مرورگر تبدیل کنید

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

<html>
<body>
<script type="text/javascript">
// Load XML 
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("cdcatalog.xml")
// Load XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("cdcatalog.xsl")
// Transform
document.write(xml.transformNode(xsl))
</script>
</body>
</html>

توجه داشته باشید:اگر شما نمی‌دانید چگونه کد JavaScript بنویسید، لطفاً از کتاب ما استفاده کنید:آموزش JavaScript》。

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

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