XSL 语言入门3 -- XSLT 中常用元素

来源:互联网 发布:米歇尔罗德里格兹 知乎 编辑:程序博客网 时间:2024/06/06 10:15

XSL 样式表由一个或多套被称为模板(template)的规则组成。

每个模板含有当某个指定的节点被匹配时所应用的规则。

1. <xsl:template> 元素

<xsl:template> 元素用于构建模板。

match 属性用于关联 XML 元素和模板。match 属性也可用来为整个文档定义模板。match 属性的值是 XPath 表达式(举例,match="/" 定义整个文档)。

好了,让我们看一下上一节中的 XSL 文件的简化版本:

<?xml version="1.0" encoding="ISO-8859-1"?><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>Title</th>       <th>Artist</th>     </tr>     <tr>       <td>.</td>       <td>.</td>    </tr>   </table> </body> </html></xsl:template></xsl:stylesheet>

代码解释:

由于 XSL 样式表本身也是一个 XML 文档,因此它总是由 XML 声明起始:

<?xml version="1.0" encoding="utf-8"?>

下一个元素,<xsl:stylesheet>,定义此文档是一个 XSLT 样式表文档(连同版本号和 XSLT 命名空间属性)。

<xsl:template> 元素定义了一个模板。而 match="/" 属性则把此模板与 XML 源文档的根相联系。

<xsl:template> 元素内部的内容定义了写到输出结果的 HTML 代码。

最后两行定义了模板的结尾,及样式表的结尾。

Xml代码:

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="template.xsl"?><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>

转换样式:



2. 其它常用元素 

(1)  <xsl:if> 

示例:

<xsl:if test="expression">

  ...

  ...如果条件成立则输出...

  ...

</xsl:if>

(2)  <xsl:value-of>

示例:

<td><xsl:value-of select="catalog/cd/title"/></td>

(3)  <xsl:for-each>

示例:

  <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>

(4)  <xsl:sort>

示例:

<xsl:for-each select="catalog/cd">      

<xsl:sort select="artist"/>      

<tr>       

 <td><xsl:value-of select="title"/></td>        

 <td><xsl:value-of select="artist"/></td>      

</tr>      

</xsl:for-each>

(5)  <xsl:choose><xsl:when><xsl:otherwise>

示例:

<xsl:choose>

  <xsl:when test="expression">

    ... 输出 ...

  </xsl:when>

  <xsl:otherwise>

    ... 输出 ....

  </xsl:otherwise>

</xsl:choose>



原创粉丝点击