[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Reusing XML content as I publish


Subject: Re: [xsl] Reusing XML content as I publish
From: "Joris Gillis" <roac@xxxxxxxxxx>
Date: Fri, 28 Jan 2005 17:59:56 +0100

Tempore 17:37:18, die 01/28/2005 AD, hinc in xsl-list@xxxxxxxxxxxxxxxxxxxxxx scripsit Nicola Harlow <Nicola.Harlow@xxxxxxxxxxxx>:

What I want to do is pick up the text from one of the terms and reuse it
elsewhere in the document by referencing just the glossary item "name",
and getting the term and definition as part of a 'tooltip.'

So you want to create:
<html><body>
You can then <a href="#" class="tooltip Allocate">Allocate Stuff<span>Stuff about allocations</span></a> resources
</body></html>


from input xml:
<root>
<glossary>
<alphagroup>
<alphahead>A</alphahead>
<glossaryitem name="Allocate">
	<term>Allocate Stuff</term>
	<definition>
		<para>Stuff about allocations</para>
	</definition>
</glossaryitem>
</alphagroup>
</glossary>
<body>
You can then <glossarytt name="Allocate"
width="200">Allocate</glossarytt> resources
</body>
</root>


That can easily be done with a 'key':


e.g.
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method = "html" indent = "yes"/>


<xsl:key name="glossary" match="glossaryitem" use="@name"/>

<xsl:template match="/">
<html>
	<body>
		<xsl:apply-templates select="root/body"/>
	</body>
</html>
</xsl:template>

<xsl:template match="glossarytt ">
	<xsl:apply-templates select="key('glossary',@name)"/>
</xsl:template>

<xsl:template match="glossaryitem">
<a href="#" class="tooltip {@name}">
	<xsl:value-of select="term"/>
	<span>
		<xsl:apply-templates select="definition"/>
	</span>
</a>
</xsl:template>

</xsl:stylesheet>

I hope I got it right now...


regards, -- Joris Gillis (http://www.ticalc.org/cgi-bin/acct-view.cgi?userid=38041) Deserta faciunt et innovationem appelant


Current Thread