现在的位置: 首页 > 综合 > 正文

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

2017年12月03日 ⁄ 综合 ⁄ 共 1834字 ⁄ 字号 评论关闭

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>

抱歉!评论已关闭.