Subject: RE: [xsl] XPath Query From: Rene de Vries <RdVries@xxxxxxxxxxx> Date: Mon, 16 Jul 2001 11:04:37 +0200 |
Hi Bryan, Think in templates!!!! xsl:call-template is only used for universal functions which you want to use at several places. <xsl:template match="DATA"> <table border="1"> <xsl:apply-templates select="HISTORY"/> </table> </xsl:template> <xsl:template match="HISTORY"> <xsl:variable name="NameCode" select="NAME"/> <tr> <td> <xsl:value-of select="DESCRIPTION"/> </td> <td> <xsl:value-of select="//DATA/NAME[@CODE=$NameCode]"/> </td> </tr> </xsl:template> Greetings Rene { @ @ } ^ \__/ "You don't need eyes to see, you need vision!" -----Oorspronkelijk bericht----- Van: Bryan Tulloch [SMTP:b.tulloch@xxxxxxxxxxxxx] Verzonden: maandag 16 juli 2001 10:45 Aan: 'XSL-List@xxxxxxxxxxxxxxxxxxxxxx' Onderwerp: [xsl] XPath Query Hi, I have tried to get the following to work, but thus far have only been able to get part of the output I need. My XML: <DATA> <HISTORY> <NAME>21</NAME> <DESCRIPTION>This is a history item 1</DESCRIPTION> </HISTORY> <HISTORY> <NAME>22</NAME> <DESCRIPTION>This is a history item 2</DESCRIPTION> </HISTORY> <HISTORY> <NAME>21</NAME> <DESCRIPTION>This is a history item 3</DESCRIPTION> </HISTORY> <HISTORY> <NAME>24</NAME> <DESCRIPTION>This is a history item 4</DESCRIPTION> </HISTORY> <HISTORY> <NAME>21</NAME> <DESCRIPTION>This is a history item 5</DESCRIPTION> </HISTORY> <NAME CODE="21"> <PERSON>Fred Bloggs</PERSON> </NAME> <NAME CODE="22"> <PERSON>John Smith</PERSON> </NAME> <NAME CODE="24"> <PERSON>Fred Jones</PERSON> </NAME> </DATA> My desired output: <TABLE> <TR><TD>This is a history item 1</TD><TD>Fred Bloggs</TD></TR> <TR><TD>This is a history item 2</TD><TD>John Smith</TD></TR> <TR><TD>This is a history item 3</TD><TD>Fred Bloggs</TD></TR> <TR><TD>This is a history item 4</TD><TD>Fred Jones</TD></TR> <TR><TD>This is a history item 5</TD><TD>Fred Bloggs</TD></TR> </TABLE> My XSL (below) displays the description in the first column of the table. However, I have not been able to find the correct XPath expression to put the data needed for the second column into the table. I imagine that I need to call another template such as "third" below, but don't know what to put in it. By the way, I have spent several hours trying to solve this one, so I'm not just being lazy! <?xml version="1.0" encoding="utf-8"?> <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:variable name="items" select="//DATA[HISTORY/NAME=NAME/@CODE]/HISTORY/NAME" /> <xsl:template match="/"> <TABLE> <xsl:call-template name="second" /> </TABLE> </xsl:template> <xsl:template name="second"> <xsl:for-each select="//DATA[./NAME/@CODE=$items]/HISTORY"> <TR> <TD> <xsl:value-of select="DESCRIPTION" /> </TD> </TR> </xsl:for-each> <xsl:call-template name="third" /> </xsl:template> <xsl:template name="third"> </xsl:template> </xsl:transform> Bryan 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XPath Query, David Carlisle | Thread | [xsl] Why would my XML not be worki, Daniel Newman |
RE: [xsl] And while you're figuring, Daniel Newman | Date | RE: [xsl] Another (hopefully not st, Jarno . Elovirta |
Month |