Subject: RE: [xsl] Selecting similar XML nodes by a sort criteria From: "Chaudhary, Harsh" <HCHAUDHA@xxxxxxxxx> Date: Thu, 4 Oct 2007 15:46:43 -0500 |
I am sorry I wasn't clear but let me try and list my example again. Before that, the color has nothing to do with the areacode being even or odd. For example --> Original data: 1/2/3/4/5 Desired colors: B/G/B/G/B Original data: 1/2/3/2/5 Sorted data: 1/2/2/3/5 Desired colors: B/G/G/B/G Unfortunately, I can't use XSLT 2.0. HC. -----Original Message----- From: Wendell Piez [mailto:wapiez@xxxxxxxxxxxxxxxx] Sent: Thursday, October 04, 2007 1:46 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Selecting similar XML nodes by a sort criteria HC, It seems to me that (in the example given) your color criterion is simply the areacode itself. When areacode is odd, the color is grey; when it's even, the color is blue. If so, this is easily determined by testing (@areacode mod 2): when is is 1 (or has Boolean value "true") make it one color, when it is 0 (or Boolean false) make it the other. This won't work, however, if your areacode values are not perfectly in series. That is, say you want blue/gray/blue/gray for areacode values 1/2/4/5, since you happen to have no value 3. Or your areacodes come with any arbitrary set of values not liable to such testing. In this case, things are more complicated. Let us know if this is a possibility, and if so, whether you can use XSLT 2.0 (much easier) or are restricted to using 1.0 (not as easy), and if the latter, whether extension functions are allowable. (This *can* be done in unextended XSLT 1.0 but I wouldn't wish it on a friend -- with the exception of some friends on this list, who have been known to find this sort of thing entertaining.) Cheers, Wendell At 01:41 PM 10/4/2007, you wrote: >Hi, > >I have the following XML. I would like to write XSLT which outputs the >above XML in an HTML table. This table should be sorted by 'areacode'. > ><?xml version="1.0" encoding="ISO-8859-1"?> ><bookstore> > <zipcode> > <book areacode='1'> > <title lang="eng">Harry Potter</title> > <price>29.99</price> > </book> > <book areacode='2'> > <title lang="eng">Learning XML</title> > <price>39.95</price> > </book> > </zipcode> > <zipcode> > <book areacode='2'> > <title lang="eng">Count of Monte Cristo</title> > <price>29.99</price> > </book> > <book areacode='3'> > <title lang="eng">Tom Sawyer</title> > <price>39.95</price> > </book> > </zipcode> ></bookstore> > >This part is fine. The problem comes when I try to color the rows in the >table so that the rows with the same areacode are the same color and the >colors alternate for rows that are not the same area code e.g. I have 2 >row colors, gray and blue. This is what the HTML should look like(sorry >about the poor HTML markup, this is just for illustration): > ><html> > <body> > <table> > <tr> > <td>Area Code</td> > <td>Title</td> > </tr> > <tr bgcolor='gray'> > <td>1</td> > <td>Harry Potter</td> > </tr> > <tr bgcolor='blue'> > <td>2</td> > <td>Learning XML</td> > </tr> > <tr bgcolor='blue'> > <td>2</td> > <td>Count of Monte Cristo</td> > </tr> > <tr bgcolor='gray'> > <td>3</td> > <td>Tom Sawyer</td> > </tr> > </table> > </body> ></html> > >What I tried was after doing something like (pseudocode): > >for-each(areacode) >sort(by areacode) >----- >write out the html row > >I need some logic or pseudocode which I can insert in the line marked >(-----) so that it would selectively apply the style attribute with the >appropriate color with each row. > >I am hoping that my question is clear enough. But I could also write the >full XSLT if that would help. I made up this example, so I don't have >the XSLT code for this particular example. > >Does anyone know of any XSLT or XPath function I could use. > >I am trying to use the XPath axes preceding-sibling. But its not working >for me. > >Thanks, >HC. ====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] selecting a node to conca, Aaron Johnson | Thread | RE: [xsl] Selecting similar XML nod, Wendell Piez |
Re: [xsl] Selecting similar XML nod, Wendell Piez | Date | RE: [xsl] Selecting similar XML nod, Wendell Piez |
Month |