XSLT语法

xslt元素:
<xsl:apply-imports>运用了一个从外部导入的xsl作为Template,导入的Template的样式表比宿主xsl的样式表优先级要低。
例如:<xsl:import href="standard.xsl"/>

<xsl:apply-templates>元素将模板运用到当前元素或者是当前元素的子节点。
如果我们在<xsl:apply-templates>元素中增加一个Select属性,它将只对与属性匹配的子元素有效。
例如:<xsl:apply-templates select="expression" mode="name">
      <!--content:(xsl:sort|xsl:with-param)*-->
      </xsl:apply-templates>

<xsl:attribute>元素被用来向元素添加属性,当有相同的名称时<xsl:attribute>元素会替代当前的属性
例如:<xsl:attribute name="attributename" namespace="uri">
      <!--content:template -->
      </xsl:attribute>

<xsl:attribute-set>元素创建一个属性集,必须是<xsl:stylesheet>或者<xsl:transform>的子元素
例如:<xsl:attribute-set name="name" use-attribute-sets="name-list">
      <!--context:xsl:attribute*-->
      </xsl:attribute-set>

<xsl:call-template>元素调用一个命名的template
例如:<xsl:call-template name="templatename">
     <!--content xsl:with-param*-->
     </xsl:call-template>

<xsl:choose>元素
与<xsl:when>和<xsl:otherwise>结合使用,表示多条件选择

<xsl:comment>元素被用来在结果树中创建一个注释节点
<xsl:comment>this is the test</xsl:comment>

<xsl:copy>创建当前节点的一份复制,当前节点的名称空间被自动复制,但是子节点和当前节点的属性不会被自动复制
<xsl:copy use-attribute-sets="name-list"><!--content:template--></xsl:copy>

<xsl:copy-of>元素创建当前节点的一份复制,名称空间节点,自节点和当前节点的属性都会被自动复制,这个元素能够身输出的不同位置插入多个相同节点的复制。
<xsl:copy-of select="expression"/>

<xsl:decimal-format>元素定义字符和符号使用format-number()函数来把数字转换为字符串
例如:<xsl:decimal-format name="euro" decimal-separator="," grouping-separator="."/>
      <xsl:template match="/">
      <xsl:value-of select="formate-number(26825.8,'#.###,00','euro')"/>
      </xsl:template>

<xsl:element>元素用来创建一个元素到输出文档
例如:<xsl:element name="name" namespace="uri" use-attribute-sets="namelist">
      <!--content template -->
      </xsl:element>

<xsl:fallback>元素,当xsl处理器不能处理某个xsl元素时,<xsl:fallback>元素指定了一个替换代码去执行
例如:处理对<xsl:loop>元素不支持,它将会用<xsl:for-each>元素替代
     <xsl:loop select="title">
       <xsl:fallback>
         <xsl:for-each select="title">
          <xsl:value-of select="."/>
        </xsl:foreach>
 </xsl:fallback>
     </xsl:loop>

<xsl:for-each>元素在每一个指定的节点集中循环
例如:<xsl:for-each select="expression">
      <!--content xsl:sort -->
      </xsl:for-each>

<xsl:if>元素包含一个样规,该样规当指定的条件为真时应用。

<xsl:import>元素用来把一个样式表的内容导入到另外一个,一个被导入的样式表比导入它的样式表的优先级要低。这个元素必须在<xsl:stylesheet>或<xsl:transform>元素中作为第一个子节点出现
例如:<xsl:import href="uri">

<xsl:include>元素用来把一个样式表的内容导入到另外一个,included的样式表与including的样式表有相同的优先级。这个元素必须在<xsl:stylesheet>或<xsl:transform>元素中作为第一个子节点出现
例如:<xsl:include href="uri"/>

<xsl:key>元素用来声明一个被key()函数使用的key
例如:<xsl:key name="name" match="pattern" use="expression"/>

<xsl:message>元素向输出发送一条消息,这个元素首先被用来报告错误,这个元素能够包含几乎所有其它的xsl元素,当一个错误发生时,terminate属性为你提供选择是继续执行还是退出。
例如:<xsl:message terminate="yes|no">
      <!--content-->
      </xsl:message>

<xsl:namespace-alias>元素用来在输出中用不同的名称空间替代样式表中原来的名称空间。

<xsl:number>元素被用来确定当前节点中的整数位置,也被用来格式化一个数字。
例如:
<xsl:number
count="expression"
level="single|multiple|any"
from="expression"
value="expression"
format="formatstring"
letter-value="alphabetic|traditional"
grouping-separator="character"
grouping-size="number"/>

<xsl:otherwise>元素为<xsl:choose>元素指定一个默认的动作,这个动作当<xsl:when>的条件不满足的时候发生

<xsl:output>元素定义了输出文档的格式,必须作为<xsl:stylesheet>或<xsl:transform>的子节点出现

<xsl:param>元素被用来声明一个局部或者全局的参数,如果声明的是一个高级的元素那么参数是全局的,如果在一个样规中声明那么局部的。

<xsl:preserve-space>元素用来定义必须保留空白空间的元素
<xsl:strip-space>元素用来定义必须移除空白空间的元素
说明:因为保留空白空间是默认设置,所以只有当<xsl:strip-space>元素被使用时才有必要使用<xsl:preserve-space>元素

<xsl:processing-instruction>元素向输出写一条执行指令
例如:<xsl:processing-instruction name="process-name">
      <!-- content -->
      <xsl:processing-instruction>

<xsl:sort>元素被用来对输出排序

<xsl:stylesheet>与<xsl:transform>元素是两个意思完全一样的元素,都被用来定义样式表的根元素

<xsl:template>元素包含一些对匹配节点有用的规则

<xsl:text>元素用来向输出写一段文字

<xsl:value-of>元素取出选择的节点的值,可以被用来取出xml元素的值,并输出

<xsl:variable>元素被用来声明一个局部或者全局的变量
说明:一旦设置了一个变量的值,就不能修改这个值
提示:可以通过增加<xls:variable>的内容或者用select属性来设置变量值。

<xsl:when>元素为<xsl:choose>元素指定一个动作,当符合<xsl:when>元素的条件时,动作就被激活
说明:<xsl:when>元素与<xsl:choose>和<xsl:otherwise>元素一同使用,来表达多条件选择。

<xsl:with-param>元素向模板传递的参数的值

 

xslt函数
current()函数返回一个仅包含当前节点的节点集,通常当前节点和上下文节点是一样的。

document()函数用来访问外部的XML文档,外部的XML文档必须是正确可解析的
例如:<xsl:value-of select="document('celsius.xml')/celsius/result[@value=$value]"/>

element-available()函数检查xslt处理器是否能处理指定的元素。

format-number()函数用来格式化一个数字字符串

function-available()函数检查指定的函数在xslt处理器中是否支持

generate-id()函数:返回一个唯一一标示指定节点的字符串
string generate-id(node-set)

key()函数使用<xsl:key>元素指定的索引返回文档中的一个节点集。

 

 

 

 

 


 

posted on 2008-02-28 16:25  心悦  阅读(2873)  评论(1编辑  收藏  举报