`
zybing
  • 浏览: 457012 次
  • 性别: 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

 

 

分享到:
评论

相关推荐

    xml根据xsl转换

    Java中处理XML和XSLT转换通常会用到如`javax.xml.transform`这样的API,其中`TransformerFactory`用于创建`Transformer`对象,`Source`对象分别代表XML输入和XSL样式表输入,`Result`对象则定义了输出的目标格式。...

    MKEY学习需要用到的相关的XML和XSL技术

    ### MKEY学习需要用到的相关的XML和XSL技术 #### XML技术概述 **XML**,即**可扩展标记语言**(eXtensible Markup Language),是一种用于标记数据的标准格式。与HTML相似,XML同样使用标签来定义数据结构。然而,...

    xml样式显示,帮助你更好学习xml

    在学习XML的过程中,理解如何有效地显示XML数据是非常关键的一步,这涉及到XML的样式表技术,即XSLT(eXtensible Stylesheet Language Transformations)。本资源包“08 XML样式显示”显然旨在帮助初学者掌握这一...

    Delphi XML转HTML

    首先,XML是一种自描述的、灵活的数据格式,它可以用来表示各种复杂的数据结构,如数据库记录、配置文件等。XML文档由元素、属性、文本内容和命名空间等组成,其规范性使得数据能够被不同系统和应用理解。 HTML则是...

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

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

    XML程序设计开发实例

    - `&lt;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"&gt;`:定义一个XSLT样式表,...

    Java and XML, 3rd Edition

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

    xml.rar_XML java_java xml_xml_xml 数据库

    这个"xml.rar"压缩包显然包含了一些关于XML在Java环境中的应用实例。 首先,从标题和描述中我们可以推测,这个程序涉及了以下几个关键知识点: 1. **XML数据转换**:程序能从一个数据库中提取数据,并将其格式化为...

    XML期末考试一定会用到的例子!不下载后悔

    XML技术剖析 XML(Extensible Markup Language,可扩展标记语言)是一种标记语言,用于存储和传输数据。XML技术广泛应用于各种领域,如数据交换、文档编辑、配置文件等。本文将通过对XML技术的剖析,帮助读者更好地...

    使用Java读取XML配置文件

    但是在平时系统开发中,我们不一定都用到数据交换,是否无法使用 XML?当然不是,现在已经有一个新趋势,Java 程序的配置文件都开始使用 XML 格式。 使用 XML 作为 Java 的配置文件有很多好处,从 Tomcat 的安装...

    JAVA与XML.rar

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

    xml转png转pdf.rar

    这里我们详细探讨一下这些技术及其应用。 首先,XML(Extensible Markup Language)是一种用于存储和传输数据的语言,它的结构清晰,易于解析。在Java中,我们可以使用DOM(Document Object Model)、SAX(Simple ...

    OMML2MML.XSL

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

    C#读写XML文件

    在C#中处理XML文件时,通常会用到以下几个重要的命名空间: - **System.Xml**:提供了创建、操作和查询XML文档的基本类。 - **System.Xml.Schema**:用于处理XML Schema定义语言(XSD)的类。 - **System.Xml....

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

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

    docbook-style-xsl.zip

    描述中提到“在编译mosquitto时将用到这个包”,暗示了DocBook风格的XSL文件可能在mosquitto项目的文档构建过程中起到关键作用。mosquitto是一个开源的MQTT(Message Queuing Telemetry Transport)代理,用于物联网...

    XML操作类.zip

    首先,我们来看一下C#中处理XML的基本概念: 1. **XmlDocument**: .NET框架中的XmlDocument类是用于加载和操作XML文档的主要类。它可以用来创建、修改和保存XML文档,支持DOM(Document Object Model)模型。 2. **...

    xml实用大全

    在这个过程中,开发者可能需要用到XML编辑器来编写文档,语法分析程序(如XML解析器)来验证文档的语法正确性,以及处理程序(如XSLT)来转换XML数据。此外,浏览器和其他工具(如XML库、API等)也参与其中,帮助...

Global site tag (gtag.js) - Google Analytics