OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: XSL Challenge

[ Lists Home | Date Index | Thread Index ]
  • From: CP XML <cpxml@yahoo.com>
  • To: James Clark <jjc@jclark.com>, Roger Costello <costello@mitre.org>
  • Date: Tue, 8 Jun 1999 21:55:04 -0700 (PDT)

Hi Folks,

This didn't work for me (I am using IE5). Can anybody give me the
correct working version of this application. Thanks so much.

-Swamy

--- James Clark <jjc@jclark.com> wrote:
> You have to use the variables feature of the current
> WD. Replace the
> second TR element in your attempted solution by the
> following:
> 
> 
>        <TR>
>           <xsl:variable name="cols" expr="Column"/>
>           <xsl:for-each
> select="../../Columns/Column">
>              <TD>
>                  <xsl:variable name="colname"
> expr="@name"/>
>                  <xsl:value-of
> select="$cols[@name=$colname]"/>
>              </TD>
>           </xsl:for-each>
>        </TR>
> 
> 
> Roger Costello wrote:
> > 
> > Hi Folks,
> > 
> > Are you up for a mind-bending XSL problem? 
> Someone presented
> > me with this problem several weeks ago and I have
> yet to find
> > a solution.  It looks simple.  It is deceptively
> challenging.
> > 
> > An XML document stores database data as follows:
> > 
> > <?xml version="1.0"?>
> > <DynamicTable>
> >         <Columns>
> >                 <Column name="col1"/>
> >                 <Column name="col2"/>
> >         </Columns>
> >         <Rows>
> >             <Row>
> >                 <Column name="col1">A</Column>
> >                 <Column name="col3">B</Column>
> >                 <Column name="col2">C</Column>
> >             </Row>
> >             <Row>
> >                 <Column name="col2">S</Column>
> >                 <Column name="col1">E</Column>
> >             </Row>
> >             <Row>
> >                 <Column name="col5">R</Column>
> >                 <Column name="col2">G</Column>
> >                 <Column name="col1">Q</Column>
> >             </Row>
> >         </Rows>
> > </DynamicTable>
> > 
> > Note that the columns that we are interested in
> are col1 and col2.
> > A <Row> element may contain data from columns not
> of interest.
> > But, it will always contain at least data for col1
> and col2.
> > 
> > The problem is to create an XSL stylesheet that
> generates an
> > HTML table with a table header:
> > 
> >            col1   col2
> > 
> > and within the table it has the row data.  So the
> HTML table
> > should look like this:
> > 
> >            col1    col2
> >            A       C
> >            E       S
> >            Q       G
> > 
> > I have shown an XML document which has just two
> columns.  However,
> > the XSL stylesheet needs to be generic and capable
> of handling
> > XML documents with any number of columns (as
> listed in the <Columns>
> > section).
> > /Roger
> > 
> > P.S.  Below is what I tried, which doesn't work.
> > 
> > <?xml version="1.0"?>
> > <xsl:stylesheet
> xmlns:xsl="http://www.w3.org/TR/WD-xsl"
> >                 result-ns="html">
> >     <xsl:template match="DynamicTable">
> >             <HTML>
> >             <HEAD>
> >             <TITLE>Dynamic Table</TITLE>
> >             </HEAD>
> >             <BODY>
> >                 <TABLE BORDER="1" WIDTH="50%">
> >                     <TR>
> >                         <xsl:for-each
> select="Columns/Column">
> >                             <TH><xsl:value-of
> select="@name"/></TH>
> >                         </xsl:for-each>
> >                     </TR>
> >                     <xsl:for-each
> select="Rows/Row">
> >                         <TR>
> >                             <xsl:for-each
> select="../../Columns/Column">
> >                                 <TD><xsl:value-of
> > 
> >
> select="../../Rows/Row/Column[@name='{@name}']"/></TD>
> >                             </xsl:for-each>
> >                         </TR>
> >                     </xsl:for-each>
> >                 </TABLE>
> >             </BODY>
> >             </HTML>
> >     </xsl:template>
> > </xsl:stylesheet>
> 
> 
> xml-dev: A list for W3C XML Developers. To post,
> mailto:xml-dev@ic.ac.uk
> Archived as:
> http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on
> CD-ROM/ISBN 981-02-3594-1
> To (un)subscribe, mailto:majordomo@ic.ac.uk the
> following message;
> (un)subscribe xml-dev
> To subscribe to the digests,
> mailto:majordomo@ic.ac.uk the following message;
> subscribe xml-dev-digest
> List coordinator, Henry Rzepa
> (mailto:rzepa@ic.ac.uk)
> 
> 

_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo@ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)






 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS