80
最 新 评 论
80
专 题 分 类
80
最 新 日 志
80
最 新 留 言
80
搜 索
用 户 登 录
友 情 连 接
我 的 好 友
80
博 客 信 息
80


XML 文档的XSL格式 | 2008/12/22 20:09:00
1、XSL 概述
【1】XSL基本概念              
          XSL的全称是eXtensible Stylesheet Language,即可扩展样式语言,是目前用来设计XML文档显示样式的主要技术之一。
          XSL主要由两部分组成,即数据转换语言XSLT和数据格式化语言XSL-FO。目前主要使用数据转换语言XSLT,可以根据需要把XML文档转换成任何一种基于文本格式的文档。
          XSL样式表文档的内容完全符合XML的语法规定,因而可以将其看成是一种特殊的XML文档。
          在显示XML文档时,XSL 样式表要比CSS样式表更具威力且更富弹性。XSL 样式表提供了对所有XML 组件(包括元素、属性、注释和处理指令)的控制权,可以轻易排序和筛选XML 文档中的数据,并允许修改或新增信息。一个XML文档链接相关的XSL样式表后,即可直接在IE 浏览器中打开,并按样式表指定的格式显示出文档内容。
【2】XML文档结构树
          XML文档的层次结构像是一颗倒挂的树,称为XML文档结构树。文档中的每一个组件,包括处理指令、注释或各个元素都是结构树中的一个节点。XML文档结构树从代表整个文档的根节点开始,其下是XML文档声明及根元素等子节点,而在根元素之下则是各层次子元素构成的一系列子节点。
          注意:根节点代表整个XML文档,而根元素则是指最上层的一个元素。
【3】XSL文档的创建与应用
          XSL 文档的组成,XSL 文档基本组成形式:
         <?xml version="1.0" encoding="gb2312" ?>
         <xsl:stylesheet xmlns:xsl="http://www/w3/org/tr/wd-xsl">  
               <xsl:template match="/">   <!--若干控制XML文档元素显示的规则-->  
               </xsl:template>  ……
         </xsl:stylesheet>
        说明:
        在XSL文档的开头,需要有XML声明语句,文档中的每一个元素和标记都必须符合XML规范。
        必须有由 <xsl:stylesheet >开始的XSL样式表声明语句。
        XSL文档的模板(template)用来规定XML文档中所匹配元素的输出内容和输出格式。一个XSL文档至少应包含一个与根节点匹配的模板。
        W3C为XSL定义了若干个特定的元素或标记,包括:stylesheet、template等,用来实现对XML文档元素的显示格式进行控制。
        在XSL文档中也可以使用各种HTML标记。
        XSL文档以 .xsl为其文件扩展名,与XML文档一样也是一种文本文件,可用任何一种文本编辑软件进行创建和修改。 
        在XML文档中引用XSL样式表的方法是在序言部分添加如下形式的指令:
       < ?xml-stylesheet type="text/xsl" href="/blog/URL" ?>

2、XSL模板
【1】XSL模板定义指令
定义一个XSL模板的基本语法格式:
<xsl:template match="pattern"> <!-- 若干行输出内容与输出格式定义代码 -->
</xsl:template>
XSL特定的 <xsl:value-of> 标记指令可用来选取某个指定的节点,并输出该节点元素的值。其基本语法格式如下:
【2】XSL选取值输出指令
XSL特定的 <xsl:value-of> 标记指令可用来选取某个指定的节点,并输出该节点元素的值。其基本语法格式如下:
<xsl:value-of select="element-name"/>
【3】XSL模板调用指令
在XSL文档中调用一个指定模板的基本语法是:
<xsl:apply-templates select="pattern"/>
 
3、XSL节点选择
【1】XSL节点选择
1. 使用元素名选择节点
可以在模板中直接指定XML文档的某个元素名来选择相匹配的节点。
例如:
<xsl:template match="roster">
<xsl:apply-templates select="roster"/>
<xsl:value-of select="name"/>
【2】使用匹配符选择节点
1.根节点匹配符
例如:
<xsl:template match="/">
2.根元素匹配符
例如:
<xsl:template match="/*">
 <xsl:apply-templates/>
</xsl:template>
3. 当前节点和父节点匹配符
例如:
<xsl:template match="Student">
 <xsl:value-of select="."/>
 <xsl:value-of select=".."/>
</xsl:template>
【3】使用路径选择节点
1.在match属性中使用路径
例如:
<xsl:template match="/roster/Student/name">
2.在select属性中使用路径
例如:
<xsl:apply-templates select="/roster/Student/name"/>
3.使用特殊路径符号
例如:
<xsl:apply-templates select="roster/*/name"/>
<xsl:apply-templates select="//name"/>
【4】选择指定的元素属性
在一些XSL样式表的特定标记中,同样可以选择和输出XML文档元素的属性内容,其语法格式为:
@ 属性名
【5】使用附加条件选择节点
1.附加子元素条件
例如:
<xsl:template match="student[score]">      <xsl:value-of select="name"/>      <xsl:value-of select="score"/> </xsl:template>
2.附加指定属性条件
例如:
<xsl:template match="student[@class]">      <xsl:value-of select="@class"/>      <xsl:value-of select="name"/> </xsl:template>
3.附加指定字符串条件
例如:
<xsl:template match="student[sex='男']">      <xsl:value-of select="SN"/>      <xsl:value-of select="name"/> </xsl:template>

4、XSL控制指令

【1】 简单判断指令
1.以元素名为条件
在 <xsl:if> 标记中,若以XML元素的名称作为判断条件,可使用以下语法:
<xsl:if match="元素名称">
2.以元素内容为条件
在 <xsl:if> 标记中,若以指定的XML元素内容作为判断条件,可使用以下语法:
<xsl:if test="元素名称[.='元素内容']">
3.以元素属性为条件
在 <xsl:if> 标记中,若以XML元素的指定属性值作为判断条件,可使用以下语法:
<xsl:if match=".[@属性名称='属性值']">
或者:
<xsl:if test=".[@属性名称='属性值']">
【2】多条件判断指令
XSL多条件判断指令的一般格式如下:
<xsl:choose>
 <xsl:when test="pattern">
  <!-- 样式定义语句 -->
 </xsl:when>
 <xsl:when test="pattern">
  <!-- 样式定义语句 -->
 </xsl:when>
 ……
 <xsl:otherwise>
  <!-- 样式定义语句 -->
 </xsl:otherwise>
</xsl:choose>
【3】循环处理指令
XSL循环处理指令的一般格式如下:
<xsl:for-each select="pattern" order-by="patternlist">
        <xsl:value-of... />
</xsl:for-each>
【4】输出内容的排序
可以利用 <xsl:for-each> 或 <xsl:apply-templates> 两个特定的标记指令来处理XML文档中的重复元素,同时还可以利用这两个标记中的order-by 属性来控制浏览器处理这些重复元素的输出顺序,达到按一定顺序输出XML 元素数据的目的。

 
阅读全文 | 回复(0) | 引用通告 | 编辑 | By: 皮皮爸爸
  • 标签:XML 
  • 发表评论:

      大名:
      密码: (游客无须输入密码)
      主页:
      标题:
      80
    Powered by Oblog.