Показаны сообщения с ярлыком transform. Показать все сообщения
Показаны сообщения с ярлыком transform. Показать все сообщения

пятница, 18 декабря 2015 г.

XSLT 1.0 Возведение в степень

<xsl:template name="power">
        <xsl:param name="base" />
        <xsl:param name="power"/>
        <xsl:param name="result" select="1" />
        <xsl:choose>
            <xsl:when test="$power = 0">
                <xsl:value-of select="$result" />
            </xsl:when>
            <xsl:otherwise>
                <xsl:call-template name="power">
                    <xsl:with-param name="base" select="$base" />
                    <xsl:with-param name="power" select="$power - 1" />
                    <xsl:with-param name="result" select="$result * $base" />
                </xsl:call-template>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>



Как использовать:

  <xsl:variable name="pw">
     <xsl:call-template name="power">
                <xsl:with-param name="base">10</xsl:with-param>    
                 <xsl:with-param name="power" select="2"/>                                  
                 </xsl:call-template>
                </xsl:variable>
  <xsl:value-of select="$pw"/>

четверг, 10 декабря 2015 г.

XSLT. Из атрибутов в элементы и обратно

Из атрибутов в элементы:

<xsl:for-each select="@*">
         <xsl:element name="{name()}"><xsl:value-of select="."/></xsl:element>   
</xsl:for-each>      

Из элементов в атрибуты:


<xsl:for-each select="*">
   <xsl:attribute name="{name()}">
     <xsl:value-of select="text()"/>
   </xsl:attribute>                            
</xsl:for-each>