<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
or:
<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的命名空间(namespace)。如果你使用了这个命名空间,你也必须注明属性版本(version)=1.0。
XSL样式表是由一个或者更多的被称为“模板(templates)”的规则设置(set of rules)组成的。
当与指定的节点匹配时,每个模板都包含了应用规则。
XSLT<xsl:template>元素是用于创建模板的。
Match的属性的作用是使模板和XML与元素相结合。Match属性也可以为整个XML定义模版。Match属性值是一个XPath表达式。
<xsl:value-of>元素可以用来选取XML元素以及把它添加到已被转换的输出流里中去。
<xsl:for-each>元素允许在XSLT里使用循环语句。
<xsl:for-each>元素的作用是:选择任何一个具有指定的节点设置(node-set)的XML元素。
注意: 选择(select)属性值是一个XPath的表达式值。XPath表达式主要用于类似文件系统的操作,而这个文件系统里是通过在前端添加“/”选择子目录。
我们也可以从XML文件通过将一个规则添加到<xsl:for-each>元素中的选择属性来过滤结果。
<xsl:for-each select="catalog/cd[artist='Bob Dylan']">
正规的过滤操作是:
如果要对结果进行分类,可以在XSL文件里的<xsl:for-each>元素中添加一个<xsl:sort>元素。
注意: 选择(select)属性需要会告诉你哪些XML元素需要进行分类。
如果你要对XML文件的内容设置一个条件语句,那需要向XSL文件中添加一个<xsl:if>元素。
注意: 所要求的语句(test)属性值包括了要条件表达式。
<xsl:choose>元素通过<xsl:when>和<xsl:otherwise>一起配合是用来表达多种条件语句。
<xsl:apply-templates>元素是把模板应用到当前元素或当前元素的子节点上。
可以使用选择属性来详细说明处理子节点的顺序。
这个的源代码需要在客户端把XML文件转换成XHTML。
< html >
< body >
< script type ="text/javascript" >
// Load XML
var xml = new ActiveXObject( " Microsoft.XMLDOM " )
xml.async = false
xml.load( " cdcatalog.xml " )
// Load XSL
var xsl = new ActiveXObject( " Microsoft.XMLDOM " )
xsl.async = false
xsl.load( " cdcatalog.xsl " )
// Transform
document.write(xml.transformNode(xsl))
</ script >
</ body >
</ html >
因为不是所有的浏览器都支持XSLT,所以人们提出了一个在服务器端把XML转换成XHTML的解决方案。
下面的(ASP)源代码要在服务器端把XML文件转换成XHTML。
< %
' Load XML
set xml = Server.CreateObject( " Microsoft.XMLDOM " )
xml.async = false
xml.load(Server.MapPath( " cdcatalog.xml " ))
' Load XSL
set xsl = Server.CreateObject( " Microsoft.XMLDOM " )
xsl.async = false
xsl.load(Server.MapPath( " cdcatalog.xsl " ))
' Transform file
Response.Write(xml.transformNode(xsl))
% >