xml - Sort Data when not using a for-each loop -
i want sort xml in specific order based of value of node "reason"
i have xml
<agentsales> <agentname>meyer rick</agentname> <state>talking out</state> <reason>undefined</reason> <time>29:09</time> </agentsales> <agentsales> <agentname>balentine james</agentname> <state>talking out</state> <reason>undefined</reason> <time>16:07</time> </agentsales> <agentsales> <agentname>shoemaker eric</agentname> <state>talking out</state> <reason>undefined</reason> <time>08:21</time> </agentsales> <agentsales> <agentname>harvey michael</agentname> <state>talking out</state> <reason>undefined</reason> <time>02:11</time> </agentsales> <agentsales> <agentname>morris branden</agentname> <state>talking out</state> <reason>undefined</reason> <time>02:05</time> </agentsales> <agentsales> <agentname>forer david</agentname> <state>talking out</state> <reason>undefined</reason> <time>01:15</time> </agentsales>
and here current style. ignores agentsales has state of "talking out" goes down line , shows rest of data as-is. want sort data time while still not showing agentsales "talking out" , "talking in" pretty sure have update select to:
<xsl:apply-templates select="newdataset/agentsales[state!=\'talking out\'] || newdataset/agentsales[state!=\'talking in\']"/>
but how sort rest of data leftover?
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <html> <body> <table cellpadding="3" cellspacing="0" width="390"> <tr> <th style="text-align:left;"><span style="font:20px arial; font-weight:bold;">agent name</span></th> <th style="text-align:center;"><span style="font:20px arial; font-weight:bold;">state</span></th> <th style="text-align:center;"><span style="font:20px arial; font-weight:bold;">time</span></th> </tr> <xsl:apply-templates select="newdataset/agentsales[state!=\'talking out\']"/> </table> </body> </html> </xsl:template> <xsl:template match="agentsales"> <tr> <xsl:if test="(position() mod 2 = 1)"> <xsl:attribute name="bgcolor">#cccccc</xsl:attribute> </xsl:if> <td style="text-align:left;"><span style="font:14px arial; font-weight:bold;"><xsl:value-of select="agentname"/></span></td> <td style="text-align:center;"><span style="font:14px arial; font-weight:bold;"><xsl:value-of select="state"/></span></td> <td style="text-align:center;"><span style="font:14px arial; font-weight:bold;"><xsl:value-of select="time"/></span></td> </tr> </xsl:template> </xsl:stylesheet>
use:
<xsl:apply-templates select= "newdataset/agentsales [not(state='talking out') , not(state='talking in') ] "> <xsl:sort select="time"/> <xsl:apply-templates
Comments
Post a Comment