XSLT 在服务器上

  • 定义

    为了使 XML 数据可用于所有类型的浏览器,我们可以在服务器上转换 XML 文档,并将其作为 XHTML 发送回浏览器。
    在上一章中,我们解释了如何在浏览器中使用 XSLT 将文档从 XML 转换为 XHTML。 我们使用 JavaScript 和 XML 解析器进行转换。 但是,这在没有 XML 解析器的浏览器中将不起作用。
    为了使 XML 数据可用于所有类型的浏览器,我们可以在服务器上转换 XML 文档并将其作为XHTML发送回浏览器。
    这是 XSLT 的另一个优点。 XSLT 的设计目标之一是使其能够在服务器上将数据从一种格式转换为另一种格式,并将可读数据返回给各种浏览器。
  • XML文件和XSL文件

    查看您在前几章中看到的XML文档:
    <?xml version="1.0" encoding="UTF-8"?>
    <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="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match="/">
        <html>
        <body>
        <h2>我的CD收藏</h2>
        <table border="1">
          <tr bgcolor="#9acd32">
            <th style="text-align:left">名称</th>
            <th style="text-align:left">艺术家</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文件的引用。
    重要说明:上面的句子表明可以使用许多不同的XSL样式表来转换XML文件。
  • 在服务器上将XML转换为XHTML

    这是将XML文件转换为服务器上的XHTML所需的PHP源代码:
    <?php
    // Load XML file
    $xml = new DOMDocument;
    $xml--->load('cdcatalog.xml');
    
    // Load XSL file
    $xsl = new DOMDocument;
    $xsl->load('cdcatalog.xsl');
    
    // Configure the transformer
    $proc = new XSLTProcessor;
    
    // Attach the xsl rules
    $proc->importStyleSheet($xsl);
    
    echo $proc->transformToXML($xml);
    ?>
    提示:如果您不知道如何编写 PHP,请学习我们的 PHP教程