zoukankan      html  css  js  c++  java
  • Xsl实践总结(一)

    在一个大型的项目中往往用到好几种开发语言,例如C# Java  PHP 。。。
    那么如何更好更方便的实现这几种语言之间的相互通讯和结合呢,我下面来介绍一种新的模式,当然已经有很多人用过,但我还是要罗嗦一下:
      通过XML进行交互,每种语言设计的对象类都可以转化为内存中的xml对象,然后每种语言都可以对xml对象进行操作与交互。

    最近做了一个项目就是改造以前的程序提升性能,由于以前页面上的构造非常乱而且杂,有从Mysql数据库取数据的,也有从SqlServer数据库取数据的,而且数据库分布在多个服务器上,由于每个项目组之间的协调不够所以在读取数据上有读取重复数据的情况,大大浪费了资源。一个页面上访问数据库很多次,所以造成访问速度非常慢。我们现在设计了一个模式,就是一次性从数据库加载所有的数据然后转化为内存中的xml对象,然后用xsl对数据包装转化为一个带有样式的Html,所有的Js中变量都一次性打到页面上以便使用。

    下面介绍几个使用xsl的方法:

    XML文件


    先附上xsl, 名字为BasicTemplate.xsl

    XSL模板



    1、在xsl中定义变量,用xpath取出数据,然后可以在用于显示的地方进行调用
    <xsl:variable name="curUserID" select="Data/ME/BasicInfo/UserID"/>
    <xsl:value-of select="$curUserID"/>
    2、xsl也可以像导入控件一样来引入另一个xsl 
    <xsl:include href="lovetype.xsl"/>
    3、条件语句的使用
             <xsl:if test="$oppGender='true'">男</xsl:if>
             <xsl:if test="$oppGender='false'">女</xsl:if>
    $oppGender代表一个变量,值为true or  false

    这里的if语句没有else部分,要想使用else只能用when

    语法如下:

     <xsl:choose>
                <xsl:when test="expression">
                ... some output ...
                </xsl:when>
                <xsl:otherwise>
                ... some output ....
                </xsl:otherwise>
                </xsl:choose>
     


    4、for-each 循环语句

    <xsl:template match="/"> 
         
    <TABLE> 
              
    <xsl:for-each select="//car"> 
                   
    <xsl:sort data-type="text" select="@id"/> 
                   
    <TR> 
                        
    <TH> 
                             
    <xsl:text>Car-</xsl:text> 
                             
    <xsl:value-of select="@id"/> 
                        
    </TH> 
                   
    </TR> 
              
    </xsl:for-each> 
         
    </TABLE> 
    </xsl:template>
    select 是选取的xml文件的符合条件的节点集合
  • 相关阅读:
    电子辅助的个体化严密控制策略比常规方法更有效地帮助早期RA实现全面控制病情[EULAR2015_THU0122]
    超声和免疫学指标的特征能否反映RA临床缓解的表型?[EULAR2015_THU0121]
    依那西普减量维持过程中RA病人自报病情复发可能预示未来放射学进展[EULAR2015_SAT0147]
    RETRO研究: 持续缓解的RA患者的减量维持方案[EULAR2015_SAT0056]
    OPTIRRA研究: TNF拮抗剂维持期优化减量方案[EULAR2015_SAT0150]
    与时俱进的治疗策略不断提高RA无药缓解机会[EULAR2015_SAT0058]
    雷公藤多甙治疗类风湿关节炎遭质疑
    我的博客今天2岁203天了,我领取了先锋博主徽章
    MyEclipse中最常用的快捷键大全
    MyEclipse无法打开jsp文件(打开是空白的),但是可以打开java文件
  • 原文地址:https://www.cnblogs.com/goody9807/p/847661.html
Copyright © 2011-2022 走看看