XSLT 转换

  • 文档声明

    将文档声明为XSL样式表的根元素是 <xsl:stylesheet> 或 <xsl:transform>。
    注意:<xsl:stylesheet> 和 <xsl:transform> 是完全同义词,可以使用!
    根据 W3C XSLT 建议书,声明 XSL 样式表的正确方法是:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
    或者:
    
    <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
    
    要访问 XSLT 元素,属性和功能,我们必须在文档顶部声明XSLT命名空间。
    xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" 指向正式的 W3C XSLT 名称空间。 如果使用此命名空间,则还必须包括属性 version="1.0"。
  • 从原始XML文档开始

    我们想要将以下 XML 文档("cdcatalog.xml")转换为 XHTML:
    大多数现代浏览器的代码:
    <?xml version="1.0" encoding="UTF-8"?>
    <catalog>
      <cd>    
        <title>帝国滑稽表演</title>
        <artist>鲍勃·迪伦</artist>
        <country>美国</country>
        <company>哥伦比亚</company>
        <price> 10.90 </price>
        <year> 1985 </year>
      </cd>
       .
       .
    </catalog>
  • 创建一个XSL样式表

    然后,使用转换模板创建XSL样式表("cdcatalog.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>My CD Collection</h2>
        <table border="1">
          <tr bgcolor="#9acd32">
            <th>标题</th>
            <th>艺术家</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 文档("cdcatalog.xml"):
    大多数现代浏览器的代码:
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
    <catalog>
      <cd>    
        <title>帝国滑稽表演</title>
        <artist>鲍勃·迪伦</artist>
        <country>美国</country>
        <company>哥伦比亚</company>
        <price> 10.90 </price>
        <year> 1985 </year>
      </cd>
        .
        .
    </catalog>
    如果您具有 XSLT 兼容的浏览器,它将很好地将XML转换为XHTML。
    上面示例的详细信息将在下一章中进行说明。