这次工作要修改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
分享到:
相关推荐
Java中处理XML和XSLT转换通常会用到如`javax.xml.transform`这样的API,其中`TransformerFactory`用于创建`Transformer`对象,`Source`对象分别代表XML输入和XSL样式表输入,`Result`对象则定义了输出的目标格式。...
### MKEY学习需要用到的相关的XML和XSL技术 #### XML技术概述 **XML**,即**可扩展标记语言**(eXtensible Markup Language),是一种用于标记数据的标准格式。与HTML相似,XML同样使用标签来定义数据结构。然而,...
在学习XML的过程中,理解如何有效地显示XML数据是非常关键的一步,这涉及到XML的样式表技术,即XSLT(eXtensible Stylesheet Language Transformations)。本资源包“08 XML样式显示”显然旨在帮助初学者掌握这一...
首先,XML是一种自描述的、灵活的数据格式,它可以用来表示各种复杂的数据结构,如数据库记录、配置文件等。XML文档由元素、属性、文本内容和命名空间等组成,其规范性使得数据能够被不同系统和应用理解。 HTML则是...
单独用XMl不能显示页面,我们使用格式化技术,比如CSS或者XSL,才能显示XML标记创建的文档。 我们在前面第一章讲到XML是将数据和格式分离的。XML文档本身不知道如何来显示,必须有辅助文件来帮助实现。(XML取消了...
- `<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">`:定义一个XSLT样式表,...
主要针对Ajax和Flash应用程序 无论您现在正在还是将来会进行Java程序的开发并且需要用到XML,或者您正在参与新的点对点技术、消息技术以及Web service技术的相关应用或者开发,《Java与XML》(第三版)都是一本不...
这个"xml.rar"压缩包显然包含了一些关于XML在Java环境中的应用实例。 首先,从标题和描述中我们可以推测,这个程序涉及了以下几个关键知识点: 1. **XML数据转换**:程序能从一个数据库中提取数据,并将其格式化为...
XML技术剖析 XML(Extensible Markup Language,可扩展标记语言)是一种标记语言,用于存储和传输数据。XML技术广泛应用于各种领域,如数据交换、文档编辑、配置文件等。本文将通过对XML技术的剖析,帮助读者更好地...
但是在平时系统开发中,我们不一定都用到数据交换,是否无法使用 XML?当然不是,现在已经有一个新趋势,Java 程序的配置文件都开始使用 XML 格式。 使用 XML 作为 Java 的配置文件有很多好处,从 Tomcat 的安装...
主要针对Ajax和Flash应用程序 无论您现在正在还是将来会进行Java程序的开发并且需要用到XML,或者您正在参与新的点对点技术、消息技术以及Web service技术的相关应用或者开发,《Java与XML》(第三版)都是一本不可...
这里我们详细探讨一下这些技术及其应用。 首先,XML(Extensible Markup Language)是一种用于存储和传输数据的语言,它的结构清晰,易于解析。在Java中,我们可以使用DOM(Document Object Model)、SAX(Simple ...
使用java解析word文件里得数学公式时,会用到该文件.可以将公式的格式转为目标格式. Mathml (MML) ...Office在安装目录中提供了将OMML转为MathML的xsl工具:MML2OMML.XSL 注:试用前,请先打开文件并阅读第一行.
在C#中处理XML文件时,通常会用到以下几个重要的命名空间: - **System.Xml**:提供了创建、操作和查询XML文档的基本类。 - **System.Xml.Schema**:用于处理XML Schema定义语言(XSD)的类。 - **System.Xml....
那么就来小心求证一下:首先,用xsl来实现解析一级xml很容易搞定,使用xsl:for-each遍历生成子菜单,并且,如果子菜单中还有子xml数据,将这些子xml数据存在子菜单对应的数据岛中,以备后面处理鼠标经过或点击菜单项...
描述中提到“在编译mosquitto时将用到这个包”,暗示了DocBook风格的XSL文件可能在mosquitto项目的文档构建过程中起到关键作用。mosquitto是一个开源的MQTT(Message Queuing Telemetry Transport)代理,用于物联网...
首先,我们来看一下C#中处理XML的基本概念: 1. **XmlDocument**: .NET框架中的XmlDocument类是用于加载和操作XML文档的主要类。它可以用来创建、修改和保存XML文档,支持DOM(Document Object Model)模型。 2. **...
在这个过程中,开发者可能需要用到XML编辑器来编写文档,语法分析程序(如XML解析器)来验证文档的语法正确性,以及处理程序(如XSLT)来转换XML数据。此外,浏览器和其他工具(如XML库、API等)也参与其中,帮助...