Subject: Re: Interrogating attributes values to get text (part deaux)
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 20 Mar 2009 13:07:34 GMT
|
> The template you wrote always returns the value for the child of the
> first <nameloc>.
No, it returns the string value of (all) the nmlist child(ren) of the
nameloc which has the id specified in the linkend attribute of the
current HYPERTEXT.
> I need to interrogate each <nameloc> id value to find the one that
> matches @linkend for the current <HYPERTEXT>.
That's what the code I posted did, using a key lookup.
On the xml you posted the template I showed produces this:
<?xml version="1.0" encoding="UTF-8"?><step><link item="item1"/></step>
which appears to be what you asked for (except that it is well formed)
your requested result had an unclosed link element.
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:apply-templates select="document/STEP"/>
</xsl:template>
<xsl:template match="STEP">
<step><xsl:apply-templates/></step>
</xsl:template>
<xsl:key name="id" match="nameloc" use="@id"/>
<xsl:template match="HYPERTEXT">
<link item="{key('id',@linkend)/nmlist}"/>
</xsl:template>
</xsl:stylesheet>
David
________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.
________________________________________________________________________
|