热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> XML编程>>正文内容

XSLT学习笔记

发布时间:2008年12月29日点击数: 未知
XSLT全称eXtended Stylesheet Language Transformation

xslt文件头
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
重要标签解析
<xsl:template match="xpath">            该标签用于定义模版,同时分配给指定结点
<xsl:apply-templates select="xpath">    该标签用于指定要应用模版的结点
提示:
xsl:template中可以再次使用xsl:apply-templates,用于样式的多级嵌套
实例1:

planets.xml
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="planets.xslt"?>
<planets>
    <planet color="red">
        <name>Mercury</name>
        <mass units="(Earth=1)">.0553</mass>
        <day units="days">58.65</day>
        <radius units="miles">1516</radius>
        <density units="(Earth=1)">.983</density>
        <distance units="million miles">43.4</distance>
    </planet>
    <planet color="yellow">
        <name>Venus</name>
        <mass units="(Earth=1)">.815</mass>
        <day units="days">116.75</day>
        <radius units="miles">3716</radius>
        <density units="(Earth=1)">.943</density>
        <distance units="million miles">66.8</distance>
    </planet>
</planets>
planets.xslt
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="planet">
<p><xsl:value-of select="name"/></p>
</xsl:template>
以上例子中,先对所有结点使用<xsl:apply-templates>,然后再使用<xsl:template>对planet结点作处理

<xsl:attribute
>    可为html标签添加属性
实例2:<a><xsl:attribute name="href" select="http://www.cnblogs.com"></a>该语句生成的结果为<a href="http://www.cnblogs.com"></a>

<xsl:value-of select="xpath"
>   获得结点的值

语法结构的使用
1. 类似于if(){...}else{}的语法
<xsl:if test="expression/condition">
....
</xsl:if>
2. 类似于switch(){case n: ...}的语法
<xsl:choose>
<xsl:when test="condition">...</xsl:when>
<xsl:when test="condition">...</xsl:when>
<xsl:otherwise>...</xsl:otherwise>
</xsl:choose>
3.foreach语法
<xsl:for-each select="node1">
.....
</xsl:for-each>
4.模版函数定义
<xsl:template name=”template name”>  
<xsl:param name=”parameter1”/>  
<xsl:param name="parameter2" select="defaultvalue"/>  
....  
</xsl:template>
其中,parameter2使用select属性指定了默认值defaultvalue。
对于模版函数中的参数可以用$variable来引用
实例3
<xsl:call-template name="template1">
<xsl:with-param name="parameter1"/>
<xsl:value-of select="$parameter1"/>
</xsl:call-template>
5.模版函数调用
<xsl:call-template name="template name">
<xsl:with-param name="parameter1" select="parameter value"/>
...
</xsl:call-template>
IE中使用xslt的注意点
  • xml中引用xslt时,必须把type=text/xml改为type=text/xsl
  • 必须先匹配根结点后,再匹配其他结点,否则可能无法显示,即match=/
  • IE浏览器不支持任何XSLT默认规则,因此必须自己写
添加javascript代码时的注意点
如果要在<script language="javascript"></script>中添加代码,必须使用<![CDATA[...]]>,因为添加的代码没有人任何标记,会使xslt文件不符合xml格式规范

本站热点业务

更多模板/案例展示

热门推荐

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作