variables - Loop on all var in xslt -


i have issue xslt syntax, stylesheet :

<?xml version="1.0" encoding="utf-8" ?> <xsl:stylesheet version="2.0"  xmlns:xsl="http://www.w3.org/1999/xsl/transform" xmlns:saxon="http://saxon.sf.net/"> <xsl:output method="xml" indent="yes"/>   <xsl:template match="/">  <root>  <xsl:for-each select="for $x in(collection('file:///users/admin/documents/xmlsoapui/?select=*.xml;recurse=yes'))return saxon:discard-document($x)//testsuite">   <ident>     <xsl:value-of select="base-uri()"/>   <xsl:if test="matches(base-uri(),'catalog')">      <xsl:call-template name="summarycatalog"/> </xsl:if> <xsl:if test="matches(base-uri(),'status')">     <xsl:call-template name="summarystatus"/> </xsl:if> <xsl:if test="matches(base-uri(),'alarm')"> <xsl:call-template name="summaryalarm"/> </xsl:if>  </ident> </xsl:for-each>  </root>   </xsl:template>  <xsl:template name="summarycatalog">     <xsl:variable name="avgaddfile" select="avg(testcase[@name='addfile']/@time)"/>     <xsl:variable name="avggetfile" select="avg(testcase[@name='getfile']/@time)"/>     <xsl:variable name="avgremovefile" select="avg(testcase[@name='removefile']/@time)"/>     <xsl:variable name="avgaddgroup" select="avg(testcase[@name='addgroup']/@time)"/>     <xsl:variable name="avggetgroup" select="avg(testcase[@name='getgroup']/@time)"/>     <xsl:variable name="avgremovegroup" select="avg(testcase[@name='removegroup']/@time)"/>     <xsl:variable name="avgaddmedia" select="avg(testcase[@name='addmedia']/@time)"/>     <xsl:variable name="avggetmedia" select="avg(testcase[@name='getmedia']/@time)"/>     <xsl:variable name="avgremovemedia" select="avg(testcase[@name='removemedia']/@time)"/>     <xsl:variable name="avgaddmediacomponent" select="avg(testcase[@name='addmediacomponent']/@time)"/>     <xsl:variable name="avggetmediacomponent" select="avg(testcase[@name='getmediacomponent']/@time)"/>     <xsl:variable name="avgremovemediacomponent" select="avg(testcase[@name='removemediacomponent']/@time)"/>     <xsl:variable name="avgaddopus" select="avg(testcase[@name='addopus']/@time)"/>     <xsl:variable name="avggetopus" select="avg(testcase[@name='getopus']/@time)"/>     <xsl:variable name="avgremoveopus" select="avg(testcase[@name='removeopus']/@time)"/>     <xsl:variable name="avgaddtrack" select="avg(testcase[@name='addtrack']/@time)"/>     <xsl:variable name="avggettrack" select="avg(testcase[@name='gettrack']/@time)"/>     <xsl:variable name="avgremovetrack" select="avg(testcase[@name='removetrack']/@time)"/>      <testchargecatalog>     <avgaddfile><xsl:value-of select="format-number($avgaddfile,'0.00000')"/></avgaddfile>     <avggetfile><xsl:value-of select="format-number($avggetfile,'0.00000')"/></avggetfile>     <avgremovefile><xsl:value-of select="format-number($avgremovefile,'0.00000')"/>    </avgremovefile>     <avgaddgroup><xsl:value-of select="format-number($avgaddgroup,'0.00000')"/></avgaddgroup>     <avggetgroup><xsl:value-of select="format-number($avgaddgroup,'0.00000')"/></avggetgroup>     <avgremovegroup><xsl:value-of select="format-number($avgaddgroup,'0.00000')"/></avgremovegroup>     <avgaddmedia><xsl:value-of select="format-number($avgaddmedia,'0.00000')"/></avgaddmedia>     <avggetmedia><xsl:value-of select="format-number($avgaddmedia,'0.00000')"/></avggetmedia>     <avgremovemedia><xsl:value-of select="format-number($avgaddmedia,'0.00000')"/></avgremovemedia>     <avgaddmediacomponent><xsl:value-of select="format-number($avgaddmediacomponent,'0.00000')"/></avgaddmediacomponent>     <avggetmediacomponent><xsl:value-of select="format-number($avggetmediacomponent,'0.00000')"/></avggetmediacomponent>     <avgremovemediacomponent><xsl:value-of select="format-number($avgremovemediacomponent,'0.00000')"/></avgremovemediacomponent>     <avgaddopus><xsl:value-of select="format-number($avgaddopus,'0.00000')"/></avgaddopus>     <avggetopus><xsl:value-of select="format-number($avggetopus,'0.00000')"/></avggetopus>     <avgremoveopus><xsl:value-of select="format-number($avgremoveopus,'0.00000')"/></avgremoveopus>     <avgaddtrack><xsl:value-of select="format-number($avgaddtrack,'0.00000')"/></avgaddtrack>     <avggettrack><xsl:value-of select="format-number($avggettrack,'0.00000')"/></avggettrack>     <avgremovetrack><xsl:value-of select="format-number($avgremovetrack,'0.00000')"/></avgremovetrack>     </testchargecatalog> </xsl:template> <xsl:template name="summarystatus">     <xsl:variable name="avgaddstatus" select="avg(testcase[@name='addstatus']/@time)"/>     <xsl:variable name="avggetstatus" select="avg(testcase[@name='getstatus']/@time)"/>     <testchargestatus>     <avgaddstatus><xsl:value-of select="format-number($avgaddstatus,'0.00000')"/></avgaddstatus>     <avggetstatus><xsl:value-of select="format-number($avggetstatus,'0.00000')"/></avggetstatus>     </testchargestatus> </xsl:template> <xsl:template name="summaryalarm"> <xsl:variable name="avgaddalarm" select="avg(testcase[@name='addalarm']/@time)"/> <xsl:variable name="avggetalarm" select="avg(testcase[@name='getalarm']/@time)"/> <testchargealarm> <avgaddalarm><xsl:value-of select="format-number($avgaddalarm,'0.00000')"/></avgaddalarm> <avggetalarm><xsl:value-of select="format-number($avggetalarm,'0.00000')"/></avggetalarm> </testchargealarm> </xsl:template> 

what want create template <xsl:for-each select="allvariables"> , apply transform value of variables.

i dont know if possible, because haven't seen exemple online.

thanks helping

it's not clear me, why can't do:

<testchargecatalog>    <xsl:for-each-group select="testcase" group-by="@name">        <xsl:element name="avg{upper-case(                                 substring(                                    current-grouping-key(),                                    1,                                    1                                 )                              )                             }{substring(current-grouping-key(),2)}">          <xsl:value-of select="format-number(                                   avg(current-group()/@time),                                   '0.00000'                                )"/>         </xsl:element>      <xsl:for-each-group>   </testchargecatalog>  

Comments

Popular posts from this blog

java - SNMP4J General Variable Binding Error -

windows - Python Service Installation - "Could not find PythonClass entry" -

Determine if a XmlNode is empty or null in C#? -