Tjenare... dumpa XSL och gör det programmatiskt mha nåt programmerings/scriptspråk med vettigt stöd för XML Att få dom sorterade borde inte vara alltför svårt, använd bara xsl:sort. Hur man ser till att samma värde inte kommer upp två gånger är jag inte helt säker på hur man gör, ska fundera på det... Simon Dahlbacka: jag är tvungen att göra det i XML... Om du gör en xsl:sort först, så kan du väl gör a en scriptvariabel som du lagrar undan värdet i. Jag har testat det med variabeln raderas hela tiden så de funkar inte...Loop hjälp !!
Jag vill göra en template som radar upp massa värden. Det svåra är att dom ska vara sorterade och samma värde får inte dyka upp 2 gånger.
Hur gör jag ??
Alla svar välkommnas
MVH Adam SolanderSv: Loop hjälp !!
själv hade jag gjort det i python.Sv: Loop hjälp !!
xsl:sort : www.w3.org/TR/xslt#sorting
[Edit]
Du skulle kunna förhindra att samma värde kommer upp två gånger med XPath funktionen distinct-values, detta kräver dock XPath 2.0 som tyvärr endast ligger som WD (Working Draft).
Dock har Saxon (XSLT processor) implementerat mycket av det som står i WD för XSLT 2.0 och XPath 2.0, vet inte om distinct-values finns med men du kan ju testa.
Kommer tyvärr inte på något sätt att göra det med XSLT 1.0 och XPath 1.0 :-(.
Saxon: saxon.sourceforge.net
[/Edit]Sv: Loop hjälp !!
JohanS: tackar... ska kolla på de..
jag testade förut preceding-sibling men det verkade inte funkar tillsammans med xsl:sortSv: Loop hjälp !!
Sen kollar du om värdena är lika (om variabeln är lika med ditt element) i en xsl:if och sen gör du bara det du skall om variablerna är olika => inga dubletter...
/mickeSv: Loop hjälp !!
<xsl:template name="lengthcheck">
<xsl:param name="element"/>
<xsl:for-each select="$element/InformationalQuantity[@QuantityType='Length']">
<xsl:sort select="Value" data-type="number"/>
<td class="dataheader13uright_" width="3%">
<xsl:if test="Value!=$lengthcurrent"><xsl:value-of select="Value"/></xsl:if>
<xsl:if test="Value=$lengthcurrent"></xsl:if>
<xsl:variable name="lengthcurrent">
<xsl:value-of select="Value"/>
</xsl:variable>
</td>
</xsl:for-each>
<tr/>
</xsl:template>
-OBS- om det är nåt fel i just denna kod kan de vara för att jag har bara ändrat från den koden jag har nu...