Я хочу отсортировать мой XML в определенном порядке на основе значения узла «Причина»
У меня есть мой 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>
и вот мой текущий стиль. Все, что он делает, это игнорирует любые AgentSales, которые имеют состояние «Разговор», но затем просто идут по линии и показывают оставшиеся данные как есть. Я хочу отсортировать данные по времени, пока не отображаются AgentSales с "Talking Out" и "Talking In". Я уверен, что мне просто нужно обновить свой выбор:
<xsl:apply-templates select="NewDataSet/AgentSales[State!=\'Talking Out\'] || NewDataSet/AgentSales[State!=\'Talking In\']"/>
Но как мне отсортировать оставшиеся данные?
<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>