标题:XSL模板的学习笔记 出处:汐忆时空:CHIRS:蝶衣人生 时间:Wed, 17 Jan 2007 11:00:03 +0000 作者:chirs 地址:https://zhoujin.com/post/55/ 内容: 让xsl在FF下能够正常显示 xsl格式后,用下面解决页面title在FF下被打印出来。 xsl输入W3C文件头 让xsl显示HTML disable-output-escaping="yes" 如: 判断是否为空值用normalize-space 判断节点是否存在   在xsl中title属性如何实现换行?  用 : xsl取xml中的序列号   类似于db的自动编号  position() XSL运算符:   除         155 div 100   求余        155 mod 100   求和        sum()            统计        count()           字符函数    ....长度      string-length(str)    ....查找      substring    ....查找      substring-after   转换为数值     number()         如果非数值,返回空。 XSL使用自定义函数 声明: 函数: 调用: XSL使用自定义函数时的特殊情况 1.参数即可以是元素值、又可以是字符串  解决办法:使用自定义函数函数。  因为刚学xsl,xml,对相关属性不甚明了,所以所用方法应该有待完善。  a)用VBS判断:      function getnode(node)       dim str       if IsObject(node) then        if(Node.Length>0)then         str=node.item(0).TEXT       else         str=""         end if       else        str=node       end if       getnode=str      End function  b)用JS判断     function node(str){      return str[0]?str[0].text:str;     } 2.使用自定义函数,简化XSL代码  这里说的是特殊情况。比如说,需要在xsl引用一个动态地址,如js文件、img、url等  以引用script为例:  function script(name,a,b,c,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){   name=name.toLowerCase=="js"?"javascript":"vbscript";   var url="";   var str=new Array(a,b,c,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s);   for(var i=0;i";  } XSL排序            以id顺序排列       以name倒序排列    xsl条件查询   进行大小于比较的时候,先进行编码。如>写成< xsl模板合并   方法一(二个)     用它引用     用它打印   方法二(多个)     主.xsl 调用                           本页主内容               子.xsl          aaa      xsl模板合并时,主模板控制子模板head中的title   (暂用下面办法)   a).建全局变量title   b).head.xsl 引用自定义函数 showtitle()   c). main.xsl 引入head.xsl之前为全局变量title赋值。    JS:   var title="";   function gettitle(a,b,c,e,f,g,h){     var str=new Array(a,b,c,e,f,g,h)     for(var i=0;i