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>مجموعه سی دی من</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 استیلوں کے ذریعے تبدیل کیا جاسکتا ہے。

براوزر میں 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>

نکات:اگر آپ جسٹسکریپت لکھنا نہیں جانتے تو اپنے لیے ہماراجسٹسکریپت تربیت》。

پہلے کد میں میکروسافٹ کا ایک ایکسیمپل XML پارسیکر بنایا گیا ہے، اور اس کا XML فائل ذہن میں لایا گیا ہے۔ دوسرے کد میں ایک دوسرے پارسیکر کا ایکسیمپل بنایا گیا ہے، اور اس کو اس XSL فائل کو ذہن میں لایا گیا ہے۔ آخری سطر میں XSL ڈاکومنٹ کا XML ڈاکومنٹ کو تبدیل کیا گیا ہے، اور نتائج کو براوزر میں HTML نمائش کیا گیا ہے۔ کام مکمل ہوا!

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