Subject: Re: [xsl] converting html table to xml From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Fri, 29 Nov 2002 16:40:49 +0000 |
Hi Thomas, > I have an html table that looks like the one included below. I want > to convert it to an xml file that looks like the one shown below. I > haven't had much luck, but I have included my xsl attempt below, but > it doesn't quite get me what I am looking for. > > Here is the sample xml > <table> > <tr> > <td><a>lateletters</a></td> > <td>xx</td> > </tr> > <tr> > <td>yy</td> > <td>zz</td> > </tr> > <tr> > <td><a>earlyletters</a></td> > <td>aa</td> > </tr> > <tr> > <td>bb</td> > <td>cc</td> > </tr> > </table> > > Here is what I want the output to look like > <frag> > <letters name="lateletters"> > <letter>xx</letter> > <letter>yy</letter> > <letter>zz</letter> > </letters> > <letters name="earlyletters"> > <letter>aa</letter> > <letter>bb</letter> > <letter>cc</letter> > </letters> > </frag> Your problem is how to get the <td> elements containing the letters that belong to one of your letter groups. I think that the easiest way to do this is to set up a key that indexes each <td> element that doesn't contain an <a> element by the value of the closest preceding <a> element, which you can do with: <xsl:key name="letters" match="td[not(a)]" use="preceding::a[1]" /> The XSLT then looks similar to what you have already, except that you can use the key to get at the letters associated with each letter group: <xsl:for-each select="tr/td/a"> <letters name="{.}"> <xsl:for-each select="key('letters', .)"> <letter><xsl:value-of select="."/></letter> </xsl:for-each> </letters> </xsl:for-each> Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] converting html table to xml, Thomas McDonald | Thread | Re: [xsl] converting html table to , Thomas McDonald |
Re: [xsl] converting html table to , Thomas McDonald | Date | RE: [xsl] converting html table to , Michael Kay |
Month |