这次工作要修改xsl模板,已经很长时间没接触了,遇到了一些问题,而且模板是以前同事写的,有些技术自己没用过,现在靠着记忆总结一下。
<xsl:template>
2种定义法:
template 中,有2种用法:
1. <xsl:template match=".." >
2. <xsl:tempate name="..." >
match方法:
用match的方式,是和xml文档中的某个节点相匹配的,调用:
<xsl:apply-templates select="xquery查询语句">
这个时候,系统会找,是否有何 xquery查询语句相匹配的template,有就调用,没有就直接把内容显示出来;
如果有对应的template匹配,则查到几条数据,就调用几次模板,和自己写 for each一样的;
2种方法的区别:
在我理解,2种方法差别在于:
1. name的方式,
相当于自己写了一段函数,调用的时候通过:<xsl:call-templates name="定义的name">进行调用,而且该template执行且执行1次;
2.match的方式:
调用通过<xsl:apply-templates select=".." mode=".." />
只有找到对应的节点,才会调用,找到几个节点调用几次
Name方式可以传参数:
通过name方式调用template,既然想自己写的一段函数,就可以传递参数:
在模板中定义参数:
<xsl:template name="test1">
<xsl:param name="arg0" />
<xsl:param name="arg1" />
.....
在调用方可以传递参数:
<xsl:call-template name="test1" >
<xsl:with-param name="arg0" select="'newvalue'" />
....
mode属性
如果一个节点,在不同的地方需要有不同的转换方式怎么办(对应match方式)?
在<xsl:template>中,有一个属性:mode,转换方式定义一个模式,
在<xsl:apply-templates>的地方,只有match和mode都匹配的话,才会调用这个template
如:定义:
<xsl:template match="price" mode="mode1" >
.....
</xsl:template>
这样,在apply-templates中这么写,才会调用到这个template
<xsl:apply-templates select="*/price" mode="mode1" />
<xsl:include href="..." />
这次做,有很多页面中间某一部分是相同的,可以把他们提炼出来,微小的不同地方可以做成参数。把这些相同的模板放在一个文件中,供其他xsl进行调用。
通过<xsl:include href="..." />可以把这个公共库引入进来。不过这个节点一定要在顶层节点下;
和<xsl:import href=".." />的差别:
import必须:是 <xsl:stylesheet> 或 <xsl:transform> 的第一个子节点。
而include:只要是顶层节点下的元素就可以了;
在xsl中,可以调用Java程序
在xsl中,可以调用java程序的方法,输出值:
<xsl:value-of
disable-output-escaping="yes"
select="java:com.mypackage.myclass.Functon($para1,$para2)"
/>
输出空格
直接写 , 在xsl中,会认为是一个变量,报 nbsp; 没有定义;就是包在<xsl:text> ,就是加上 disable-output-escaping 属性没用。
在<xsl:text>中,用 <![CDATA[ ... ]]> 方式,就可以了
其实还有好多其他的,都忘了。
机器崩溃一次,没保存下来,看来以后要第一时间记录在网上
所有的xsl元素可以参考: http://www.w3school.com.cn/xsl/xsl_w3celementref.asp
分享到:
相关推荐
MKEY学习需要用到的相关的XML和XSL技术,因为MKEY的开发是展现是基于XML和XSL相关的技术
这是我在项目开发用到的利用xml和xsl解释形成HTML代码,动态生成树形菜单程序,现在发布出来,希望能给大家带来好处.
单独用XMl不能显示页面,我们使用格式化技术,比如CSS或者XSL,才能显示XML标记创建的文档。 我们在前面第一章讲到XML是将数据和格式分离的。XML文档本身不知道如何来显示,必须有辅助文件来帮助实现。(XML取消了...
主要针对Ajax和Flash应用程序 无论您现在正在还是将来会进行Java程序的开发并且需要用到XML,或者您正在参与新的点对点技术、消息技术以及Web service技术的相关应用或者开发,《Java与XML》(第三版)都是一本不...
为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的...
主要针对Ajax和Flash应用程序 无论您现在正在还是将来会进行Java程序的开发并且需要用到XML,或者您正在参与新的点对点技术、消息技术以及Web service技术的相关应用或者开发,《Java与XML》(第三版)都是一本不可...
使用java解析word文件里得数学公式时,会用到该文件.可以将公式的格式转为目标格式. Mathml (MML) ...Office在安装目录中提供了将OMML转为MathML的xsl工具:MML2OMML.XSL 注:试用前,请先打开文件并阅读第一行.
那么就来小心求证一下:首先,用xsl来实现解析一级xml很容易搞定,使用xsl:for-each遍历生成子菜单,并且,如果子菜单中还有子xml数据,将这些子xml数据存在子菜单对应的数据岛中,以备后面处理鼠标经过或点击菜单项...
这是本人上XML课程所用到的参考书希望对大家有好处。
参考www.w3school.com.cn做的简单的,详情请参考w3网站吧。
自己写的对XML的增删改查,还有DTD,XSL的操作,例子很全,分为几个章节,大家可以慢慢看,都是基于DOM操作的,里面用到的jar包全部放到里面了,大家看了之后就可以直接拿来用了
可扩展标记语言(英语:eXtensible Markup Language,简称: XML),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机...它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。
xml应用实例,用xml语句将所要用到的数据表示出来,然后用xsl语句将xml文件转换成html页面。
首先将控件的相关数据用xml描述出来,对于每一种Theme(皮肤/主题样式),有一个相关的配置文件,配置文件中记载了该控件所用到的xsl、css、图片路径、htc等信息。在控件相关的htc中,根据Theme属性组合这些。从而...
豆腐 在 这里 给大家 提供一个 很简单的 例子 关于XML 和 XSL 限于篇幅和知识水平 豆腐就不在这里 献丑了 下面首先来 说说 几个需要用到的文件的 内容 testXsl.xsl: <?xml version=’1.0′?> ...
发现介绍开源的资料太多了,基础知识反而少有关注,最近闲来无事,将多年工作中用到的比较实际的xml与webservice基础东西讲一些,基本的都有谈到,但ppt中分类不方便,因此流水账似地覆盖知识点。有空再写别的部分,...
30.简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。 答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。 31.公司要求开发一个继承System....
技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则...
php离线安装时所用到的扩展包,包含70个扩展安装包,在linux系统下,进入文件夹,使用rpm -ivh *.rpm --nodeps --force 进行安装
在XSL这个壳,我们要从原料库.XML里提取相关的数据,就要用到XSL提供的模式化查询语言.