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 stylesheet همراه آن:

<?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 نیست.

موضوع مهم:این جمله به این معناست که فایل XML می‌تواند با استفاده از چندین XSL stylesheet مختلف تبدیل شود.

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 کار می‌کند