XSLT في الخادم

بما أن ليس جميع المتصفحات يدعمون XSLT، هناك حل آخر يتمثل في تحويل XML إلى XHTML على الخادم.

حلول متعددة المتصفحات

في الفصل السابق، شرحنا كيفية استخدام XSLT في المتصفح لتحويل XML إلى XHTML. قمنا بإنشاء سلسلة من JavaScript باستخدام معالج XML للتحويل. لا يمكن للحلول JavaScript العمل على المتصفحات التي لا تحتوي على معالج 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>مجموعتي من الأقراص المدمجة</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 على الخادم:

<%
تحميل 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 من Microsoft، ثم قام بتحميل ملف XML في الذاكرة. ثانيًا، أوجد الكود الثاني مثالاً على إنشاء نموذج آخر للمعالج، ثم قام بتحميل ملف XSL في الذاكرة. في النهاية، استخدم الكود الأخير XSL لتحويل ملف XML، وأرسل النتيجة كـ XHTML إلى متصفحك. تم الانتهاء من المهمة!

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