XSLT - در سرور
- صفحه قبلی XSLT در کاربر
- صفحه بعدی ویرایش XML با XSLT
چون همه مرورگرها از XSLT پشتیبانی نمیکنند، راهحل دیگری این است که تبدیل XML به XHTML را بر روی سرور انجام دهیم.
راهحلهای چند مرورگری
در فصلهای قبلی، ما روشهای استفاده از XSLT برای تبدیل XML به XHTML در مرورگرها را توضیح دادیم. ما یک جاوااسکریپت برای انجام این تبدیل با استفاده از پردازنده XML ایجاد کردیم. راهحل جاوااسکریپت در مرورگرهایی که پردازنده 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 تبدیل میکند:
<% Load XML set xml = Server.CreateObject("Microsoft.XMLDOM") xml.async = false xml.load(Server.MapPath("cdcatalog.xml")) 'Load XSL set xsl = Server.CreateObject("Microsoft.XMLDOM") xsl.async = false xsl.load(Server.MapPath("cdcatalog.xsl")) 'Transform file Response.Write(xml.transformNode(xsl)) %>
توجه:اگر نمیدانید چگونه ASP بنویسید، میتوانید ازآموزش ASP》。
کد اولین یک نمونه از پردازشگر XML مایکروسافت را ایجاد میکند و فایل XML را به حافظه بارگذاری میکند. کد دومین یک نمونه دیگر از پردازشگر ایجاد میکند و فایل XSL را به حافظه بارگذاری میکند. آخرین خط کد فایل XSL را برای تبدیل فایل XML استفاده میکند و نتیجه را به عنوان XHTML به مرورگر شما ارسال میکند. کار انجام شد!
- صفحه قبلی XSLT در کاربر
- صفحه بعدی ویرایش XML با XSLT