ایکس ایس ایل ٹی - سرور پر

由于并非所有的浏览器都支持 XSLT,另一种解决方案是在服务器上完成 XML 至 XHTML 的转化。

跨浏览器解决方案

在前面的章节,我们讲解过如何在浏览器中使用 XSLT 来完成 XML 到 XHTML 的转化。我们创建了一使用 XML 解析器来进行转化的 JavaScript。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>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>

ਇਹ 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"))
'ਲੋਡ ਐਕਸਐਲ
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 发送到您的浏览器。任务完成!

请看它如何工作