webForumDet fria alternativet

Sortering i XSL

3 svar · 445 visningar · startad av ironhead

ironheadMedlem sedan mars 20011 346 inlägg
#1

Hello!

Jag loopar ut en massa slumpade värden och vill gruppera dem efter samma typ. Det jag får med mig från XML:en är att grupp1 har värdet 1, grupp2 = 2 etc.

Hur kan man sortera datat i loopen för att från detta:
grupp3
grupp2
grupp3
grupp1
grupp4
grupp1

...få det såhär:
grupp1
grupp1
grupp2
grupp3
grupp3
grupp4

datat ser ut typ såhär:
XML:
'# Loop
<Datamodule modno='345444-23' datas='14/75-Vrenchkey 19' sort='1'>

XSL:
<xsl:for-each select="Datamodule">
<xsl:value-of select="@modno"/>
<xsl:value-of select="@datas"/>
</xsl:for-each>

Förstår ni tanken? :l

SPiNMedlem sedan mars 20007 896 inlägg
#2

Jadå. :)

Du löser det så här, har jag för mig:

<xsl:for-each select="Datamodule">
<xsl:sort select="Datamodule" />
<xsl:value-of select="@modno" />
<xsl:value-of select="@datas" />
</xsl:for-each>
ironheadMedlem sedan mars 20011 346 inlägg
#3

Tackar SPiN!

Hade lyckats hitta det själv också.
Fast man ska skriva in "fält/attribut-namnet" på det som skall sorteras.
(Iofs beror det på hur man byggt upp sin XML).

<xsl:for-each select="Datamodule">
<xsl:sort select="@sort" />
<xsl:value-of select="@modno" />
<xsl:value-of select="@datas" />
</xsl:for-each>

(Fungerar dock endast från MSXML3.0 och framåt)

SPiNMedlem sedan mars 20007 896 inlägg
#4

Det beror på webläsare/komponent. Det är en funktion för XSL som står med i standarden, och bör därför vara med i alla nyare webläsare ( Mozilla och IE6, mao. ). :)

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)