`
zybing
  • 浏览: 445923 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【xml】这次工作中,用到的xml/xsl的一些技术,记录一下

xml 
阅读更多

这次工作要修改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)"
/>

 

 

 

输出空格&nbsp;

直接写 &nbsp;, 在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技术,因为MKEY的开发是展现是基于XML和XSL相关的技术

    一个利用xml和xsl解释生成无限级的树形菜单的源程序

    这是我在项目开发用到的利用xml和xsl解释形成HTML代码,动态生成树形菜单程序,现在发布出来,希望能给大家带来好处.

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    单独用XMl不能显示页面,我们使用格式化技术,比如CSS或者XSL,才能显示XML标记创建的文档。 我们在前面第一章讲到XML是将数据和格式分离的。XML文档本身不知道如何来显示,必须有辅助文件来帮助实现。(XML取消了...

    Java and XML, 3rd Edition

    主要针对Ajax和Flash应用程序 无论您现在正在还是将来会进行Java程序的开发并且需要用到XML,或者您正在参与新的点对点技术、消息技术以及Web service技术的相关应用或者开发,《Java与XML》(第三版)都是一本不...

    XML 讲解和分析

     为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的...

    JAVA与XML.rar

    主要针对Ajax和Flash应用程序 无论您现在正在还是将来会进行Java程序的开发并且需要用到XML,或者您正在参与新的点对点技术、消息技术以及Web service技术的相关应用或者开发,《Java与XML》(第三版)都是一本不可...

    OMML2MML.XSL

    使用java解析word文件里得数学公式时,会用到该文件.可以将公式的格式转为目标格式. Mathml (MML) ...Office在安装目录中提供了将OMML转为MathML的xsl工具:MML2OMML.XSL 注:试用前,请先打开文件并阅读第一行.

    无限菜单之 xml+popup 版(IE5.5+)

    那么就来小心求证一下:首先,用xsl来实现解析一级xml很容易搞定,使用xsl:for-each遍历生成子菜单,并且,如果子菜单中还有子xml数据,将这些子xml数据存在子菜单对应的数据岛中,以备后面处理鼠标经过或点击菜单项...

    XML HTML CSS XSL Web编程实作教程

    这是本人上XML课程所用到的参考书希望对大家有好处。

    xslt小示例 用到了xsl-fo做模板

    参考www.w3school.com.cn做的简单的,详情请参考w3网站吧。

    自己写的对XML的增删改查,还有DTD,XSL的操作

    自己写的对XML的增删改查,还有DTD,XSL的操作,例子很全,分为几个章节,大家可以慢慢看,都是基于DOM操作的,里面用到的jar包全部放到里面了,大家看了之后就可以直接拿来用了

    xml范例规格学习

    可扩展标记语言(英语:eXtensible Markup Language,简称: XML),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机...它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。

    课程安排xml代码

    xml应用实例,用xml语句将所要用到的数据表示出来,然后用xsl语句将xml文件转换成html页面。

    web下的listview控件

    首先将控件的相关数据用xml描述出来,对于每一种Theme(皮肤/主题样式),有一个相关的配置文件,配置文件中记载了该控件所用到的xsl、css、图片路径、htc等信息。在控件相关的htc中,根据Theme属性组合这些。从而...

    让 Asp 与 XML 交互

    豆腐 在 这里 给大家 提供一个 很简单的 例子 关于XML 和 XSL 限于篇幅和知识水平 豆腐就不在这里 献丑了 下面首先来 说说 几个需要用到的文件的 内容 testXsl.xsl: &lt;?xml version=’1.0′?&gt; ...

    XML与Webservice实用参考

    发现介绍开源的资料太多了,基础知识反而少有关注,最近闲来无事,将多年工作中用到的比较实际的xml与webservice基础东西讲一些,基本的都有谈到,但ppt中分类不方便,因此流水账似地覆盖知识点。有空再写别的部分,...

    net学习笔记及其他代码应用

    30.简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。 答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。 31.公司要求开发一个继承System....

    asp.net知识库

    技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则...

    php离线安装所需要的扩展

    php离线安装时所用到的扩展包,包含70个扩展安装包,在linux系统下,进入文件夹,使用rpm -ivh *.rpm --nodeps --force 进行安装

    XSLT.rar_xslt

    在XSL这个壳,我们要从原料库.XML里提取相关的数据,就要用到XSL提供的模式化查询语言.

Global site tag (gtag.js) - Google Analytics