[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] No to display the values which are already existing


Subject: RE: [xsl] No to display the values which are already existing
From: "Tengshe, Ashish" <Tengshe.Ashish@xxxxxxxxxxxxx>
Date: Wed, 25 Jun 2003 13:39:32 -0500

Thanks, Works fine Now!

-----Original Message-----
From: Américo Albuquerque [mailto:melinor@xxxxxxx]
Sent: Wednesday, June 25, 2003 1:24 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] No to display the values which are already existing


Hi

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Tengshe, Ashish
> Sent: Wednesday, June 25, 2003 7:14 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] No to display the values which are already existing
> 
> 
> This is not really accurate. This works only for th given 
> sequence, try placing "Dan" and "Steve" Authors in different 
> sequence and this breaks. Basically this works only if the 
> Element on which the key is generated are in consecutive 
> order. I would like the answer too! Thanks, Ashish

Yes, that is true, sorry

Just sort the <Title> elements by the Author and it will work

 <xsl:template match="Store">
   <table>
    <tr>
     <td>Author</td>
     <td>Title</td>
    </tr>
     <xsl:apply-templates>
      <xsl:sort select="Author"/>
     </xsl:apply-templates>
   </table>
  </xsl:template>

> 
> -----Original Message-----
> From: Américo Albuquerque [mailto:melinor@xxxxxxx]
> Sent: Wednesday, June 25, 2003 12:48 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] No to display the values which are already existing
> 
> 
> Hi
> 
> > -----Original Message-----
> > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> > Dhananjay Pitani
> > Sent: Wednesday, June 25, 2003 6:23 PM
> > To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: [xsl] No to display the values which are already existing
> > 
> > 
> > This is my xml
> > 
> > <Store>
> >   <Title>
> >         <Author>Steve</Author>
> >         <Name>XSL</Name>
> >   </Title>
> >   <Title>
> >         <Author>Steve</Author>
> >         <Name>XML</Name>
> >   </Title>
> >   <Title>
> >         <Author>Dan</Author>
> >         <Name>HTML</Name>
> >   </Title>
> >   <Title>
> >         <Author>Dan</Author>
> >         <Name>XSL</Name>
> >   </Title>
> > </Book>
> > 
> > I want to display the above xml as a html table with two
> > columns Author and 
> > Titlle. My task is to display the Author's name only once. 
> > The output should 
> > be like this
> > 
> > Author      Title
> > 
> > Steve        XSL
> >                 XML
> > Dan           HTML
> >                 XSL
> > 
> 
> You could use a variation of the muenchian method
> 
>  <xsl:key match="Title" name="list" use="Author"/>  
> <xsl:template match="Store">
>   <table>
>    <tr>
>     <td>Author</td>
>     <td>Title</td>
>    </tr>
>    <!-- instead of applying just to the first element of each 
> group apply to all -->
>    <xsl:apply-templates/>
>   </table>
>  </xsl:template>
>  <xsl:template match="Title">
>   <tr>
>    <td>
>     <!-- display the Author if this is the first element of 
> the group -->
>     <xsl:if test="generate-id()=generate-id(key('list',Author))">
>      <xsl:apply-templates select="Author"/>
>     </xsl:if>
>    </td>
>    <td>
>     <xsl:apply-templates select="Name"/>
>    </td>
>   </tr>
>  </xsl:template>
> 
> 
> Hope this helps you. 
> 
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 
> 



 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
Keywords