XSLT در سرور
- صفحه قبل XSLT در کاربر
- صفحه بعدی ویرایش XSLT برای XML
چون همه مرورگرها از XSLT پشتیبانی نمیکنند، راهحل دیگری این است که تبدیل XML به XHTML را بر روی سرور انجام دهیم.
راهحلهای چند مرورگر
در فصلهای قبلی، ما روشهای استفاده از XSLT برای تبدیل XML به XHTML در مرورگرها را توضیح دادهایم. ما یک جاوااسکریپت برای انجام این تبدیل با استفاده از analizگر XML ایجاد کردهایم. راهحل جاوااسکریپت در مرورگرهایی که analizگر 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>
و همچنین جدول استایل 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>
لطفاً توجه داشته باشید که این فایل XML شامل ارجاع به فایل XSL نیست.
مatters to consider:این جمله نشان میدهد که فایل 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 مایکروسافت را ایجاد میکند و فایل XML را به حافظه بارگذاری میکند. کد دوم یک نمونه دیگر از پارسر ایجاد میکند و فایل XSL را به حافظه بارگذاری میکند. آخرین خط کد از سند XSL برای تبدیل مستند XML استفاده میکند و نتیجه را به عنوان XHTML به مرورگر شما ارسال میکند. کار تمام شد!
- صفحه قبل XSLT در کاربر
- صفحه بعدی ویرایش XSLT برای XML