• xslt语法之---基础语法


    1. XSLT常用元素:

    1.1 <xsl:template>:创建模板
        Match属性的作用是使模板和XML元素相关联

    <xsl:template match="">......</xsl:template>

    1.2 <xsl:value-of>:选取XML元素,并添加到已被转换的输出流中

    <xsl:value-of select = "xpath"/>

    1.3 <xsl:for-each>:循环
    1.4 <xsl:sort>:对结果进行排序

    <xsl:for-each select ="catalog/cd["article='Bob']"> 
                <xsl:sort select="article"/> 
                ..... 
    </xsl:for-each>
              
       在我实际练习时,发现如果select属性中若要带参数,需要按照如下语法:
    <xsl:sort select="*[name()=$param1Name]" order="{$para2Name}"/>
    1.5 <xsl:if>:相当于if-then 
       
    <xsl:if test="price>10"> 
            ...... 
    </xsl:if>
    1.6 <xsl:choose>:相当于if-then-else 
       
    <xsl:choose> 
           <xsl:when test="expression"> 
               ...... 
           </xsl:when> 
           <xsl:otherwise> 
               ...... 
           </xsl:otherwise> 
    </xsl:choose>

    2. XSLT常用函数
    2.1 current():返回当前节点
      

    <xsl:value-of select="current()"/>
          等效于
    <xsl:value-of select="."/>

    2.2 document():访问一个外部的XML文档的节点
       

    <xsl:value-of select="document('other.xml')/root/xpath"/>
          实际应用中,貌似document后面的接的Xpath中不能带参数变量,例如这样会出现解析错误:"document('other.xml')/root/$paramName/ChildNode"

    2.3 element-available():测试指定的元素是否能被XSLT处理器支持
       

    <xsl:when test="element-available('xsl:comment')"> 
               判断是否支持注释 
    </xsl:when>

    2.4 format-number():数字转换为字符串
       

    <value-of select="format-number(500,'#.00')"/>

    2.5 function-available():测试是否支持该函数
     

    <xsl:if test="function-availabel('current')"> 
           ...... 
    </xsl:if>

    2.6 generate-id():返回自增独立唯一标识,类似于SQL中的identity(1,1)

    2.7 key():使用由<xsl:key>指定的索引[index],从当前文档中返回一个节点组;
      

    <xsl:for-each select="key('string','object')"> 
              ...... 
     </xsl:for-each>

    2.8 system-property():返回通过name属性指定的系统属性值
       

    <xsl:value-of select="system-property('xsl:version')"/>

    2.9 unprased-entity-uri():返回未解析实体的URI.

    3. JS传参数给XSLT:
    JS中:

    var xml = new ActiveXObject("MSXML2.DOMDocument"); 
    xml.load("filename.xml"); 
    var xsl = new ActiveXObject("MSXML2.FreeThreadedDOMDocument"); 
    xsl.load("filename.xsl");      
    var xslTemplate = new ActiveXObject("MSXML2.XSLTemplate"); 
    xslTemplate.stylesheet = xsl; 
    var xslProcessor = xslTemplate.createProcessor();   
    xslProcessor.input = xml; 
    xslProcessor.addParameter("ParamName", paramValue); 
    xslProcessor.transform();
    XSLT中:
    <param name="ParamName"></param>
    用$ParamName取得参数的值   
  • 相关阅读:
    1123 Is It a Complete AVL Tree (30分)---如何建立平衡二叉搜索树(LL型RR型LR型RL型)+如何判断完全二叉树
    1021 Deepest Root (25 分)(经典搜索)
    PAT甲 1020 Tree Traversals (树的后序中序->层序)
    (数据结构)如何根据树的后序中序遍历求树的前序遍历
    习题2.3 数列求和-加强版 (模拟)
    PAT甲级 1051 Pop Sequence (25) && 2019天梯赛 L2-032 彩虹瓶 (25 分) (模拟+栈)
    PAT甲级 Are They Equal (25) (恶心模拟)
    PAT甲级1059 Prime Factors (25)(素数筛+求一个数的质因子)
    IO 模型
    Nginx 反向代理
  • 原文地址:https://www.cnblogs.com/cRaZy-TyKeIo/p/3484216.html
Copyright © 2020-2023  润新知