Xsl实践总结(二)

1、模板的使用
工作中会遇到一些编码表的情况,就是数据库中存储的是数值,但显示的是一些实在意义的汉字。
这种情况我们可以定义一个存储数据的xsl文件,我定义了一个codeTab.xsl

然后把这个引用到Archive.xsl文件中,就是要显示真实数据的文件中
我们用学历举例:
None.gif < xsl:include  href ="codeTab.xsl" />
None.gif
< xsl:variable  name ="oppEducation" >
None.gif  
< xsl:call-template  name ="GetDegree" >
None.gif   
< xsl:with-param  name ="Degree"  select ="Archives/Education" />
None.gif  
</ xsl:call-template >
None.gif 
</ xsl:variable >
http://www.cnblogs.com/goody9807
codeTab.xsl
None.gif < xsl:template  name ="GetDegree" >
None.gif        
< xsl:param  name ="Degree" />
None.gif        
< xsl:variable  name ="DegreeMapper" >
None.gif            
< Item >
None.gif                
< Name > 高中及以下 </ Name >
None.gif                
< Value > 1 </ Value >
None.gif            
</ Item >
None.gif            
< Item >
None.gif                
< Name > 大学 </ Name >
None.gif                
< Value > 2 </ Value >
None.gif            
</ Item >
None.gif            
< Item >
None.gif                
< Name > 硕士 </ Name >
None.gif                
< Value > 3 </ Value >
None.gif            
</ Item >
None.gif            
< Item >
None.gif                
< Name > 博士 </ Name >
None.gif                
< Value > 4 </ Value >
None.gif            
</ Item >
None.gif            
< Item >
None.gif                
< Name > 博士后 </ Name >
None.gif                
< Value > 5 </ Value >
None.gif            
</ Item >
None.gif        
</ xsl:variable >
None.gif                
< xsl:value-of  select ="exslt:node-set($DegreeMapper)/Item[Value=$Degree]/Name" />
  </ xsl:template >

注意:这里用到了扩展的xslt,所以需要在上面定义 xmlns:exslt ="http://exslt.org/common"  

None.gif < xsl:stylesheet  version ="1.0"  xmlns:BitHelper ="BitHelper"  xmlns:math ="http://exslt.org/math"  xmlns:exslt ="http://exslt.org/common"  xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >


最后在实际用到的地方
None.gif < td > 学历: < xsl:value-of  select ="$oppEducation" /></ td >
http://www.cnblogs.com/goody9807

2、xsl的中日期的格式转化

在页首定义的地方需要引用date的名称空间
None.gif < xsl:stylesheet  version ="1.0"  xmlns:date ="http://exslt.org/dates-and-times"  xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >

在出现日期的地方可以通过掩码的方式转化为你想要的日期格式

None.gif < td > 出生日期: < xsl:value-of  select ="date:format-date(Archives/Birthday,'yyyy年MM月dd日')" /></ td >

3、xsl中用到一些exslt的Math名称空间下的方法

None.gif < xsl:variable  name ="PowerNumbers" >
None.gif            
< xsl:for-each  select ="exslt:node-set($MatchIncomeMapper)/Item/Value" >
None.gif                
< Value >
None.gif                    
< xsl:value-of  select ="math:power(2,number(.)-1)" />
None.gif                
</ Value >
None.gif            
</ xsl:for-each >
None.gif        
</ xsl:variable >


具体的exslt的一些说明可以参考:
http://www.exslt.org/

4、如何在xsl拼接字符串
None.gif      < xsl:for-each  select ="exslt:node-set($MatchIncomeMapper)/Item[BitHelper:isSelected(number($MatchIncome),Value)]" >
None.gif                    
< xsl:if  test ="position()&gt;1" > , </ xsl:if >
None.gif                    
< xsl:value-of  select ="Name" />
None.gif                
</ xsl:for-each >

position方法是xsl内置的方法,意思是取得每次循环中的位置,上面的循环可以达到拼接字符串的效果
就是比如说你有多个学历:
大学,博士,硕士

5、在xsl中引用Java类中的方法
首先我定义一个BitHelper的类

None.gif import  java.util. * ;
ExpandedBlockStart.gifContractedBlock.gif
public   class  BitHelper dot.gif {
ExpandedSubBlockStart.gifContractedSubBlock.gif    
public static boolean isSelected(long source,int pos)dot.gif{
InBlock.gif        
return (source & (1<<(pos-1)))>0;
ExpandedSubBlockEnd.gif    }

ExpandedSubBlockStart.gifContractedSubBlock.gif    
public static int RandomNumber(int minNumber,int maxNumber)dot.gif{
InBlock.gif
InBlock.gif        Random rnd
=new Random();
InBlock.gif        
return rnd.nextInt(maxNumber-minNumber+1)+minNumber;
ExpandedSubBlockEnd.gif    }

ExpandedSubBlockStart.gifContractedSubBlock.gif    
static void main(String[] args)dot.gif{
InBlock.gif        BitHelper bh
=new BitHelper();
InBlock.gif        System.out.print(bh.isSelected(
8,4));
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

http://www.cnblogs.com/goody9807

None.gif < xsl:variable name = " RandomNumber "  select = " BitHelper:RandomNumber(1,count($DestLoveTypeSet)) " />

注意要在页面首行引用名称空间
None.gif < xsl:stylesheet  version ="1.0"  xmlns:BitHelper ="BitHelper"  xmlns:exslt ="http://exslt.org/common"  xmlns:random ="http://exslt.org/random"  xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >

希望了解这方面知识的朋友多交流!

相关文章: Xsl实践总结(一)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值