Wendell:
<xsl:template match="step1|step2...">
<xsl:variable name="currentId" select="@id"/>
<xsl:for-each select="$steps">
<xsl:value-of select="step[(_at_)id = $currentId]/@number"/>
1. This will only work when using XSLT 2.0, or a node-set extension
function, since ordinarily (in XSLT 1.0) you cannot iterate
over, or query
into, a result-tree-fragment this way.
True. But there's no need to spell *everything* out is there? Surely a
point in the right direction is better than a 'cut and paste' in the
long run...
2. Even so, how is it better than simply calculating the
number of each
step using the same <xsl:number count="step1|step2|..." ...
/> instruction,
where you need it?
<xsl:template match="step1|step2...">
<xsl:variable name="currentId" select="@id"/>
<xsl:for-each select="$steps">
<xsl:value-of select="step[(_at_)id = $currentId]/@number"/>
...
could as easily be
<xsl:template match="step1|step2...">
<xsl:number count="step1|step2....| " .../>
(Look ma, no variable.)
I recognise the element names and have worked on this kind of dtd for a
few years, so (I think) I know the requirements even if norma didn't
quite spell them out :)
I still stand by using variables in this situation, they really help
maintaining and debugging the process involved.
cheers
andrew
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list