|
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 |