This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Sorting + unique copy problem
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: Re: [xsl] Sorting + unique copy problem
- From: "Thomas B. Passin" <tpassin at mitretek dot org>
- Date: Thu, 8 Nov 2001 14:11:07 -0500
- References: <033f01c16882$9edfd170$8d045198@loria.fr>
- Reply-To: xsl-list at lists dot mulberrytech dot com
In fact, your stylesheet does work except for one thing. It isn't
well-formed because the <form> element isn't closed. You need to add the
closing tag for it - which you need even in html - and preferably also
declare
<xsl:output method='html'/>
After I made that fix, the select box does have the keywords sorted
alphabetically as you want. Without the fix, the stylesheet cannot run.
Cheers,
Tom P
[Annalisa Ricci]
> Hallo all,
> I have a problem with sorting too and I couldn't solve it.
> My XML contains a <Filmlist>.
> Every <Film> in the <Filmlist> can have 1..* <KeyWord> tags.
> I would to use the KeyWord values as <OPTION> of a <SELECT> input.
> I would every KeyWord value to be present in a unique copy, and sorted in
> alphabetic order.
> Something like :
>
> <option value="{Keyword1}"> Keyword1</option>
> <option value="{Keyword2}"> Keyword2</option>
> <option value="{Keyword3}"> Keyword3</option>
> <option value="{Keyword4}"> Keyword4</option>
> <option value="{Keyword5}"> Keyword5</option>
>
> I tried the code XSL below and the KeyWord values are present in un unique
> copy, but they aren't sorted.
>
> What is wrong?
> TIA, annalisa
> ====My XML ================================
> <Filmlist>
> <Film>
> <KeyWord>Keyword1</KeyWord>
> <KeyWord>Keyword2</KeyWord>
> <KeyWord>Keyword3</KeyWord>
> <KeyWord>Keyword4</KeyWord>
> </Film>
> <Film>
> <KeyWord>Keyword5</KeyWord>
> <KeyWord>Keyword1</KeyWord>
> <KeyWord>Keyword3</KeyWord>
> <KeyWord>Keyword6</KeyWord>
> </Film>
> <Film>
> <KeyWord>Keyword3</KeyWord>
> <KeyWord>Keyword7</KeyWord>
> </Film>
> </Filmlist>
>
>
> ====My XSL ================================
> <xsl:key name="kw" match="KeyWord" use="."/>
>
> <xsl:template match="/">
> <form action="process_user.jsp" TARGET="result" method="get">
> <select type="text" name="kw" size="1" maxlength="125">
> <option value="empty"/>
> <xsl:apply-templates select="//KeyWord"/>
> </select>
> </xsl:template>
>
> <xsl:template match="KeyWord">
> <xsl:for-each
select="self::node()[generate-id(.)=generate-id(key('kw',
> .)[1])]">
> <xsl:sort select="." />
> <option value="{.}"><xsl:value-of select="."/></option>
> </xsl:for-each>
> </xsl:template>
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list