zoukankan      html  css  js  c++  java
  • 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取得参数的值   
  • 相关阅读:
    如何处理数集据不平衡的问题
    xgb&lgb&ctb区别
    LDA与gibbs采样
    撸了一个 Feign 增强包
    行为驱动模型-Behave
    MySQL 主从复制常见错误答疑
    POJ 1191
    POJ 1141
    HDU 1754
    POJ 3468
  • 原文地址:https://www.cnblogs.com/cRaZy-TyKeIo/p/3484216.html
Copyright © 2011-2022 走看看