天天看点

XSLT - 转换

实例研究:如何使用 XSLT 将 XML 转换为 XHTML。

我们会在下一章对本实例的细节进行解释。

把文档声明为 XSL 样式表的根元素是 <xsl:stylesheet> 或 <xsl:transform>。

<b>注意:</b>&lt;xsl:stylesheet&gt; 和 &lt;xsl:transform&gt; 是完全同义的,均可被使用!

根据 W3C 的 XSLT 标准,声明 XSL 样式表的正确方法是:

&lt;xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;

或者:

&lt;xsl:transform version="1.0"

如需访问 XSLT 的元素、属性以及特性,我们必须在文档顶端声明 XSLT 命名空间。

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 指向了官方的 W3C XSLT 命名空间。如果您使用此命名空间,就必须包含属性 version="1.0"。

我们现在要把下面这个 XML 文档("cdcatalog.xml")<b>转换</b>为 XHTML:

&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;

&lt;catalog&gt;

&lt;cd&gt;

&lt;title&gt;Empire Burlesque&lt;/title&gt;

&lt;artist&gt;Bob Dylan&lt;/artist&gt;

&lt;country&gt;USA&lt;/country&gt;

&lt;company&gt;Columbia&lt;/company&gt;

&lt;price&gt;10.90&lt;/price&gt;

&lt;year&gt;1985&lt;/year&gt;

&lt;/cd&gt;

.

&lt;/catalog&gt;

<b>在 Firefox 和 Internet Explorer 中查看 XML 文件:</b>打开 XML 文件(通常通过点击某个链接) - XML 文档会以颜色化的代码方式来显示根元素及子元素。点击元素左侧的加号(+)或减号(-)可展开或收缩元素的结构。如需查看原始的 XML 源文件(不带有加号和减号),请在浏览器菜单中选择"查看页面源代码"或"查看源代码"。

<b>在 Netscape 6 中查看 XML 文件:</b>打开 XML 文件,然后在 XML 文件中右击,并选择"查看页面源代码"。XML 文档会以颜色化的代码方式来显示根元素及子元素。

<b>在 Opera 7 中查看 XML 文件:</b>打开 XML 文件,然后在 XML 文件中右击,选择"框架"/"查看源代码"。XML 文档将显示为纯文本。

查看 "cdcatalog.xml"

然后创建一个带有转换模板的 XSL 样式表("cdcatalog.xsl"):

&lt;xsl:template match="/"&gt;

&lt;html&gt;

&lt;body&gt;

&lt;h2&gt;My CD Collection&lt;/h2&gt;

&lt;table border="1"&gt;

&lt;tr bgcolor="#9acd32"&gt;

&lt;th&gt;Title&lt;/th&gt;

&lt;th&gt;Artist&lt;/th&gt;

&lt;/tr&gt;

&lt;xsl:for-each select="catalog/cd"&gt;

&lt;tr&gt;

&lt;td&gt;&lt;xsl:value-of select="title"/&gt;&lt;/td&gt;

&lt;td&gt;&lt;xsl:value-of select="artist"/&gt;&lt;/td&gt;

&lt;/xsl:for-each&gt;

&lt;/table&gt;

&lt;/body&gt;

&lt;/html&gt;

&lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;

查看 "cdcatalog.xsl"

向 XML 文档("cdcatalog.xml")添加 XSL 样式表引用:

&lt;?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?&gt;

如果您使用的浏览器兼容 XSLT,它会很顺利地把您的 XML <b>转换</b>为 XHTML。

查看结果

我们会在下一章对上面的例子中的细节进行解释。