XSL模板

  • Post author:
  • Post category:其他


1.

定义模板


(1)

什么是模板?



模板是

XSL

中一个非常重要的概念。

可以这么认为,

XSL

样式表是由一个一个的模板组成的。每个


XSL


样式表至少要包含一个模板。



模板的作用:


指定对

XML

文档中哪些元素进行格式化,以及具体如何进行格式化。


(2)

如何定义模板?


定义一个

XSL

模板的语法格式如下:



<


xsl:template


match


=”

pattern

“>



<!–



指定具体如何进行格式化



–>



</


xsl:template


>

其中:

1 “


<


xsl:template


>


”是模板定义的开始标记,“


</


xsl:template


>


”是模板定义的结束标记。

2


match



属性用于指定对

XML

文档中哪些元素进行格式化,取值由匹配模式


pattern


决定,如下表所示:


pattern


示例


说明



/



<


xsl:template


match


=”

/

“>

与根节点匹配,对根节点下所有子节点进行格式化。



element



<


xsl:template


match


=”

产品

“>

与产品节点匹配,对产品节点下所有子节点进行格式化。



parent


/child



<


xsl:template


match


=”

产品信息

/


产品


“>

与产品信息节点下的产品子节点匹配,对产品节点下所有子节点进行格式化。



(3)

定义模板,要注意以下几点:

1

在模板中,可以直接使用合法的

HTML

标记。

2

模板定义不能嵌套,也即不能在一个模板内部,再定义一个模板。

3

模板必须是

XSL

文件中根元素



<


xsl:stylesheet


>


的直接子元素。

2.

应用模板


如何应用已经定义好的模板?




XSL

文件中定义好模板之后,可以应用这个模板,其语法格式如下:



<


xsl:apply-templates




[


select


=”

pattern




]


></


xsl:apply-templates


>

其中:

1 “


<


xsl:apply-templates


>


”是开始标记,“


<


/


xsl:apply-templates


>


”是结束标记。

2


select


属性是可选的。

因此,应用模板有两种形式,如下所示:

第一种:不带


select



属性的



<


xsl:apply-templates


/>

第二种:带


select


属性的


<


xsl:apply-templates


select


=”

pattern

“/>






XML

解析器遇到应用模板指令时,将会处理指定模板所匹配节点下所有子节点。


3. XSL

模板应用实例


(1)

创建一个描述产品信息的


XML


文档,如下所示:



<?xml version=”1.0″ encoding=”GB2312″?>


<



产品信息



>


<



产品






产品编号



=”

P001

“>


<



名称



>


牙膏


</



名称



>


<



价格



>

3.5

</



价格



>


<



数量



>

100

</



数量



>


</



产品



>


<



产品






产品编号



=”

P002

“>


<



名称



>


牙刷


</



名称



>


<



价格



>

1.5

</



价格



>


<



数量



>

100

</



数量



>


</



产品



>


<



产品






产品编号



=”

P003

“>


<



名称



>


毛巾


</



名称



>


<



价格



>

6.5

</



价格



>


<



数量



>

100

</



数量



>


</



产品



>


<



产品






产品编号



=”

P004

“>


<



名称



>


杯子


</



名称



>


<



价格



>

4.5

</



价格



>


<



数量



>

100

</



数量



>


</



产品



>


</



产品信息



>



(2)

创建一个


XSL


文件,用于格式化上述


XML


文档,如下所示:



<?xml version=”1.0″ encoding=”GB2312″?>


<


xsl:stylesheet


version


=”

1.0




xmlns:xsl


=”

http://www.w3.org/1999/XSL/Transform

“>


<


xsl:template


match


=”

/

“>


<


xsl:apply-templates


select


=”


产品信息


“/>


</


xsl:template


>


<


xsl:template


match


=”


产品信息


“>


<


html


>


<


body


>


<


table


border


=”

1px




align


=”

center




width


=”

400px




cellspacing


=”

0px



cellpadding


=”

5px

“>


<


tr


align


=”

center

“>


<


th


>


产品编号


</


th


>


<


th


>


产品名称


</


th


>


<


th


>


产品价格


</


th


>


<


th


>


产品数量


</


th


>


</


tr


>


<


xsl:apply-templates


select


=”


产品


“/>


</


table


>


</


body


>


</


html


>


</


xsl:template


>


<


xsl:template


match


=”


产品


“>


<


tr


align


=”

center

“>


<


td


><


xsl:value-of


select


=”

@

产品编号


“/></


td


>


<


td


><


xsl:value-of


select


=”


名称


“/></


td


>


<


td


><


xsl:value-of


select


=”


价格


“/></


td


>


<


td


><


xsl:value-of


select


=”


数量


“/></


td


>


</


tr


>


</


xsl:template


>


</


xsl:stylesheet


>




注意:在

XSL

文件中,必须要有一个根模板,往往第一个出现的模板就是根模板。


根模板是指匹配到根节点的模板,根模板的定义,如下所示:



<


xsl:template


match


=”

/

“>



<!–



指定具体如何进行格式化



–>



</


xsl:template


>





XSL

文件中,除了根模板之外,一般还会定义一些其它的模板,这些模板用于对


XML


文档中指定元素进行格式化。



XSL

处理器总是从根模板开始匹配


XML


文档,在处理的过程中再调用其它的模板。



(3)




XSL


文件与


XML


文档关联起来,如下所示:


<?xml version=”1.0″ encoding=”GB2312″?>


<?xml-stylesheet type=”text/xsl” href=”products.xsl”?>



版权声明:本文为qq_35204154原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。