[Home] [By Thread] [By Date] [Recent Entries]
David Carlisle schrieb:
First question: Is it possible, in XSLT 1.0, to sort my items based on a helper structure like the following,
$cat neets to be a node set (of one node) not an RTF so you need to put the maping in a source file, perhaps loaded by document() or if you put it into a RTF variable in the stylesheet use an x;node-set() extension to make it into a node set. Or use xslt2 where this RTF nonsense goes away.
Finally, for a huge set of categories, I'd want to use an xsl:key. How would that fit into the picture? Is it possible to have the key return the context position? Or would this be difficult as maybe there is no context when an xsl:key is built?
Michael <xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:key name="kcat" match="Cat" use="."/>
<xsl:template match="XPG">
<Items>
<xsl:for-each select="Item">
<xsl:sort select="count(
key('kcat', @cat)/preceding-sibling::Cat )"/>
<xsl:copy-of select="."/>
</xsl:for-each>
</Items>
</xsl:template>
</xsl:transform><XPG>
<Categories>
<Cat>film</Cat>
<Cat>spor</Cat>
<Cat>kult</Cat>
<Cat>info</Cat>
<Cat>kind</Cat>
</Categories>
<Item cat="spor">Fu_ball</Item>
<Item cat="spor">Laufen</Item>
<Item cat="info">Tagesschau</Item>
<Item cat="spor">Tennis</Item>
<Item cat="info">Wochenschau</Item>
<Item cat="kult">Theater</Item>
<Item cat="kind">Heini</Item>
<Item cat="kult">Kunst</Item>
<Item cat="kind">Seppel</Item>
<Item cat="film">Casablanca</Item>
</XPG>
|

Cart



