xslt学习笔记

1.查询某个节点的所有属性
<xsl:for-each select ="/xmldata/data//d" >
        <tr>
          <xsl:for-each select ="@*">
            <td>
              <xsl:value-of select ="."/>
            </td>
          </xsl:for-each>
        </tr>
      </xsl:for-each>
2.字符串操作
 2.1 字符串相加
  <xsl:attribute name="onclik">
              <xsl:value-of select="concat('orderby(',@name,',asc)')"/>
            </xsl:attribute>
 2.2 字符串包含
  <!--当当前字段是要合计或小计的-->
          <xsl:if test="contains(@cando,'pagesum,sum')">
 2.3 格式化 format-nunber,另外还用到了合计方法sum()
  <!--小计-->
            <xsl:if test="$style = 0">
              <xsl:value-of select="format-number(sum(/xmldata/data/*[name()=$xmltitle]/d/@*[name()=$name]),'####.00')"/>
            </xsl:if>
3.变量的定义和使用
  3.1 简单的定义和赋值
  <!--总页数-->
  <xsl:variable name="totalpages">
    <xsl:value-of select="/xmldata/data/*[name()=$xmltitle]/@totalpages"/>
  </xsl:variable>

  3.2通过调用函数返回值
    <!--取得小计或合计要跨行的数量-->
  <xsl:variable name="numberSumCell">
    <xsl:call-template name="sumNum">
    </xsl:call-template>
  </xsl:variable>
  <xsl:template name="sumNum">
    <xsl:for-each select="/xmldata/fielddef/*[name()=$xmltitle]/item[@cando = 'pagesum,sum']/@cIndex">
      <xsl:sort order="descending" select="."/>
      <xsl:if test="position() = 1">
        <xsl:value-of select="."/>
      </xsl:if>
    </xsl:for-each>
  </xsl:template>
原文地址:https://www.cnblogs.com/kuailewangzi1212/p/2478481.html