| 
 
Subject: [xsl] seemingly simple transform, need idea how to do it. From: "Carter, Will" <WCarter@xxxxxxxxxxxxxxxx> Date: Tue, 8 Oct 2002 08:48:07 -0500  | 
Here is my XML
---------------------------------------------
<people>
   <person firstName="Johnny">
      <date day="2002-01-01">
	   <funThing>Ate Pizza</funThing>
	   <badThing>Hit Brother</badThing>
      </date>
	<date day="2002-02-01">
	   <funThing>Bought Bike</funThing>
	   <badThing>Stole Candy</badThing>
	</date>
	<date day="2002-03-01">
	   <funThing>Ran in Park</funThing>
	   <badThing>Skipped class</badThing>
	</date>
   </person>
   <person firstName="Billy">
      <date day="2002-01-01">
	   <funThing>Swam in lake</funThing>
	   <badThing>Told a lie</badThing>
	</date>
	<date day="2002-02-01">
	   <funThing>Jumped on Tramp</funThing>
	   <badThing>Hid valuables</badThing>
	</date>
	<date day="2002-03-01">
	   <funThing>Visited Disney</funThing>
	   <badThing>Cussed</badThing>
	</date>
   </person>
</people>
---------------------------------------------
Here is what I want in my output:
---------------------------------------------
		Johnny FunThing 	Johnny BadThing 	Billy FunThing 	Billy BadThing 
2002-01-01 	Ate Pizza 		Hit Brother 	Swam in lake 	Told a lie 
2002-02-01 	Bought Bike 	Stole Candy 	Jumped on Tramp	Hid valuables 
2002-03-01 	Ran in Park 	Skipped class 	Visited Disney 	Cussed 
---------------------------------------------
Here is my xsl that kinda works (shows correct output but sorting doesn't work):
---------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<table border="1">
   <tr>
      <td></td>
	<td>Johnny FunThing</td>
	<td>Johnny BadThing</td>
	<td>Billy FunThing</td>
	<td>Billy BadThing</td>
   </tr>
   <xsl:for-each select="people/person/date[../@firstName = 'Johnny']">
   <xsl:sort select="@day" order="ascending" data-type="text"/>
   <xsl:variable name="pos" select="position()"/>
   <tr>
      <td><xsl:value-of select="@day"/></td>
      <td><xsl:value-of select="funThing"/></td>
      <td><xsl:value-of select="badThing"/></td>
      <td><xsl:for-each select="../../person/date[../@firstName = 'Billy'][position() = $pos]"><xsl:value-of select="funThing"/></xsl:for-each></td>
      <td><xsl:for-each select="../../person/date[../@firstName = 'Billy'][position() = $pos]"><xsl:value-of select="badThing"/></xsl:for-each></td>
   </tr>
   </xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
---------------------------------------------
I want to be able to sort on the Billy funThing or Billy badThing columns.  Seems like I am doing too much to set variable with position, jump out of that loop to get the Billy contents.
any help would be appreciated.
thanks,
will
 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
| Current Thread | 
|---|
  | 
| <- Previous | Index | Next -> | 
|---|---|---|
| [xsl] Re: Grouping and sorting usin, Dimitre Novatchev | Thread | Re: [xsl] seemingly simple transfor, Trevor Nash | 
| Re: [xsl] data structure in xslt?, Trevor Nash | Date | RE: [xsl]Clarify Add an element to , LVanvleet | 
| Month |