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>

نصيحة:إذا لم تكن تعرف كيفية كتابة JavaScript، يرجى دراسة كتابنادليل JavaScript》。

أول قطعة من الكود أنشأ نموذجًا من محلل XML لمicrosoft، ثم قام بتحميل ملف XML إلى الذاكرة. قطعة الكود الثانية أنشأت نموذجًا آخر من المحلل، ثم قام بتحميل ملف XSL إلى الذاكرة. في الخط الأخير، استخدم مستند XSL لتحويل مستند XML، وعرض النتيجة كXHTML في المتصفح. تم إكمال المهمة!

انظر كيف يعمل في IE.