AW: AW: [xsl] XSL equivalent to SQL "unique"

Subject: AW: AW: [xsl] XSL equivalent to SQL "unique"
From: "Nestel, Frank" <frank.nestel@xxxxxx>
Date: Wed, 18 Apr 2001 13:53:55 +0200
Thank you, finally I think I understand this method,
though I have to modify it somehow since my real case
is still more complicated.

Dankeschön!

> -----Ursprüngliche Nachricht-----
> Von: Oliver Becker [mailto:obecker@xxxxxxxxxxxxxxxxxxxxxxx]
> Gesendet am: Mittwoch, 18. April 2001 11:43
> An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Betreff: Re: AW: [xsl] XSL equivalent to SQL "unique"
> 
> Hi Frank,
> 
> this solution assumes an XML input like this:
> <root>
>         <set name="1">
>                 <a>v1</a>
>                 <c>v2</c>
>                 <d>v3</d>
>         </set>
>         <set name="2">
>                 <a>v4</a>
>                 <b>v5</b>
>                 <e>v6</e>
>         </set>
>         <set name="3">
>                 <b>v7</b>
>                 <f>v8</f>
>         </set>
> </root>
> 
> Ok, here you go (maybe not optimal, but it works):
> 
> <xsl:stylesheet version="1.0"
>                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
> 
> <xsl:key name="cols" use="name()" match="set/*" />
> 
> <xsl:variable name="cols" 
>               select="//set/*[count(.|key('cols',name())[1]) = 1]" />
> 
> <xsl:template match="root">
>    <html><body><table border="1">
>       <tr><td />
>          <xsl:for-each select="$cols">
>             <xsl:sort select="name()" />
>             <th>
>                <xsl:value-of select="name()" />
>             </th>
>          </xsl:for-each>
>       </tr>
>       <xsl:apply-templates />
>    </table></body></html>
> </xsl:template>
> 
> <xsl:template match="set">
>    <tr>
>       <th>
>          <xsl:value-of select="@name" />
>       </th>
>       <xsl:variable name="entries" select="*" />
>       <xsl:for-each select="$cols">
>          <xsl:sort select="name()" />
>          <td>
>             <xsl:value-of select="$entries[name() = 
> name(current())]" />
>          </td>
>       </xsl:for-each>
>    </tr>
> </xsl:template>
> 
> </xsl:stylesheet>
> 
> 
> Perhaps Jeni will have a break and post some explanations on 
> how to solve
> problems like yours ;-)
> 
> Cheers,
> Oliver
> 
> 
> Original message:
> > > I've spent some time to figure out an easy way to solve 
> the following
> > > problem and failed, maybe some Guru can give me a clue?
> > > 
> > > Having XML input like
> > > 
> > > 	<set name="1">
> > > 		<a>v1</a>
> > > 		<c>v2</c>
> > > 		<d>v3</d>
> > > 	</set>
> > > 	<set name="2">
> > > 		<a>v4</a>
> > > 		<b>v5</b>
> > > 		<e>v6</e>
> > > 	</set>
> > > 	<set name="3">
> > > 		<b>v7</b>
> > > 		<f>v8</f>
> > > 	</set>
> > > 
> > > I need to render a quadratic schema like
> > > 
> > > 		a 	b 	c 	d 	e 	f
> > > 	1	v1		v2	v3
> > > 	2	v4	v5			v6
> > > 	3		v7				v8
> > > 
> > > in HTML, i.e., I need output like
> > > 
> > > 	<table>
> > > 
> > > <tr><td></td><td>a</td><td>b</td><td>c</td><td>d</td><td>e</td
> > > ><td>f</td></t
> > > r>
> > > 
> > > <tr><td>1</td><td>v1</td><td></td><td>v2</td><td>v3</td><td></
> > > td><td></td></
> > > tr>
> > > 
> > > <tr><td>2</td><td>v4</td><td>v5</td><td></td><td></td><td>v6</
> > > td><td></td></
> > > tr>
> > > 
> > > <tr><td>3</td><td></td><td>v7</td><td></td><td></td><td></td><
> > > td>v8</td></tr
> > > >
> > > 	</table>
> > > 
> > > Of course all dimensions are variable dependand on underlying
> > > data. I thought, the problem boils down to obtaining the 
> a list like
> > > 
> > > 	<n>a</n><n>b</n><n>c</n><n>d</n><n>e</n><n>f</n>
> > > 
> > > in a variable from the initial input. But I failed to obtain 
> > > that, though
> > > I'm fairly sure it has to "be there" :-(
> > > 
> > > Any help?
> > > 
> > > Thank you very much,
> > > Frank
> 
> /-------------------------------------------------------------------\
> |  ob|do        Dipl.Inf. Oliver Becker                             |
> |  --+--        E-Mail: obecker@xxxxxxxxxxxxxxxxxxxxxxx             |
> |  op|qo        WWW:    http://www.informatik.hu-berlin.de/~obecker |
> \-------------------------------------------------------------------/
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread