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。上面示例的详细信息将在下一章中进行说明。