[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Sorry David, obviously I did get you wrong then.
Anyway, I have a working and (thanks to Andrew) a performing solution for my problem now, which is only slightly different from Andrews, i.e. I need the ids as element, not as attribute.
My solution:
<xsl:variable name="indexToIDs">
<xsl:for-each select="/transformation/IRF//*[@index]">
<xsl:variable name="pos" select="position()"/>
<entry genid="{generate-id()}">
<xsl:copy-of select="/transformation/id_list/id[$pos]"/>
</entry>
</xsl:for-each>
</xsl:variable>
<xsl:template match="/transformation">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[@index]">
<xsl:variable name="genid" select="generate-id()"/>
<xsl:value-of select="$genid"/>
<xsl:copy>
<xsl:copy-of select="xalan:nodeset($indexToIDs)/entry[@genid = $genid]/id"/>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@index"/>
<xsl:template match="id_list"/>
David Carlisle wrote:
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Re: AW: [xsl] recursion with xsl:apply-templates
Subject: Re: AW: [xsl] recursion with xsl:apply-templates From: Volker Witzel <volker.witzel@xxxxxxxxxxxx> Date: Thu, 28 Aug 2003 09:21:47 +0200 |
Sorry David, obviously I did get you wrong then.
Anyway, I have a working and (thanks to Andrew) a performing solution for my problem now, which is only slightly different from Andrews, i.e. I need the ids as element, not as attribute.
Thanks again for your support and contributions! Volker.
My solution:
<xsl:variable name="indexToIDs">
<xsl:for-each select="/transformation/IRF//*[@index]">
<xsl:variable name="pos" select="position()"/>
<entry genid="{generate-id()}">
<xsl:copy-of select="/transformation/id_list/id[$pos]"/>
</entry>
</xsl:for-each>
</xsl:variable>
<xsl:template match="/transformation">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[@index]">
<xsl:variable name="genid" select="generate-id()"/>
<xsl:value-of select="$genid"/>
<xsl:copy>
<xsl:copy-of select="xalan:nodeset($indexToIDs)/entry[@genid = $genid]/id"/>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@index"/>
<xsl:template match="id_list"/>
David Carlisle wrote:
it is like David assumed:
But your posted solution didn't do what mine did. Mine took the value of the index attribute as the id element to copy your solution ignored the value and counted the number of elements that had that attribute.
David
________________________________________________________________________ This e-mail has been scanned for all viruses by Star Internet. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________
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: AW: [xsl] recursion with xsl:ap, David Carlisle | Thread | RE: AW: [xsl] recursion with xsl:ap, Andrew Welch |
RE: [xsl] From a string to node-set, Jarno . Elovirta | Date | Re: [xsl] Re: Re: Incrementing a Gl, Mukul Gandhi |
Month |