博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xml学习笔记与心得
阅读量:5993 次
发布时间:2019-06-20

本文共 3612 字,大约阅读时间需要 12 分钟。

让xsl在FF下能够正常显示

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/xhtml1/strict">
xsl格式后,用下面解决页面title在FF下被打印出来。
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="eng">
xsl输入W3C文件头
<xsl:output method="html" encoding="gb2312" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
让xsl显示HTML
   disable-output-escaping="yes"
   如: <xsl:value-of select="Root" disable-output-escaping="yes"/>
判断是否为空值
  用normalize-space
判断节点是否存在
  <xsl:if test="not(节点)">
在xsl中title属性如何实现换行?
  用:&#13;&#10;
xsl取xml中的序列号
  类似于db的自动编号 position()
XSL运算符:
  除         155 div 100
  求余        155 mod 100
  求和        sum()         <xsl:value-of select="sum(//price)"/>
  统计        count()        <xsl:value-of select="count(PERSON[name=tom])"/>
  字符函数
   ....长度
      string-length(str) 
   ....查找      substring
   ....查找      substring-after
  转换为数值     number()        <xsl:value-of select="number(book/price)"/> 如果非数值,返回空。
XSL使用自定义函数
声明:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/xhtml1/strict" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:Missde="MissdeVBS" xmlns:MissdeJS="MissdeJS">
函数:
<msxsl:script language="VBScript" implements-prefix="Missde">
<![CDATA[
   这里写VBS
]]>
</msxsl:script>
<msxsl:script language="javaScript" implements-prefix="MissdeJS">
<![CDATA[
   这里写JS
]]>
调用:
<xsl:value-of select="Missde:函数名()"/>
<xsl:value-of select="MissdeJS:函数名()"/>
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<str.length;i++){
    if(str[i]!=undefined){
      url+=node(str[i]);
    }
  }
  return "<script language='"+name+"' type='text/"+name+"' src='"+url+"'></script>";
 }
XSL排序
  <xsl:for-each select="student"> 
    <xsl:sort select="id" order='ascending'/>    以id顺序排列
    <xsl:sort select="name" order='descending'/>  以name倒序排列
  </xsl:for-each>

-------------------------------------------------

下面事件中,包括了排序、条件查询、及多条件合并查询
<xsl:for-each select="body/msg[sort='pro' and position() &lt; 4]">
<xsl:sort select="isgoodtime"   order='descending'/>
</xsl:for-each>

xsl条件查询

  进行大小于比较的时候,先进行编码。如>写成&lt;
xsl模板合并
  方法一(二个)
    用它引用<xsl:import href=""/>
    用它打印<xsl:apply-imports/>
  方法二(多个)
    主.xsl 调用
    <xsl:import href="head.xsl"/>
    <xsl:import href="foot.xsl"/>
    <xsl:template match="html">
    <xsl:call-template name="head"/>
      本页主内容
    <xsl:import href="foot.xsl"/>
    </xsl:template>
    子.xsl
    <xsl:template name="head">
    aaa
    </xsl:template>
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<str.length;i++){
      if(str[i]!=undefined){
        title+=node(str[i])+ " - ";
      }
    }
    return "";
  }
  function showtitle(){
    return title;
  }
出处:

转载地址:http://wgvlx.baihongyu.com/

你可能感兴趣的文章
juggle dsl语法介绍及codegen浅析
查看>>
106:HttpResponse对象讲解
查看>>
Laravel学习笔记(二)
查看>>
linux安装redis服务,配置PHP扩展
查看>>
第七章学习小结
查看>>
sprintf_s的使用
查看>>
python基础学习笔记第一天
查看>>
分布式缓存学习总结— —竹子整理
查看>>
鼠标右键 删除
查看>>
(转载)MyEclipse github
查看>>
rails3和4获取当前url
查看>>
转:Yaf 路由协议
查看>>
Subsets
查看>>
生成二维码(支持中文)
查看>>
粗选公式-通达信(东方财富网)
查看>>
openwrt下部署adbyby去广告大师 免luci 带自启动,自动开启透明代理
查看>>
防火墙安装的十步骤,加强网络第一道保护屏
查看>>
陶哲轩实分析命题10.1.7
查看>>
ruby 反射机制常用方法
查看>>
9月7日学习内容整理:内置函数
查看>>