Subject: [xsl] While copying everything, append attribute value with incremental index. From: Xuan Ngo <xuanngo2001@xxxxxxxxx> Date: Fri, 10 Aug 2007 20:27:58 -0700 (PDT) |
I would like to append the value of the attribute "p" with an incremental index using position() function but position() is only giving me 1s. Input: ======== <?xml version="1.0" encoding="UTF-8"?> <root> <M i="k">1</M> <A i="p"><B><C>5</C></B></A> <A i="p"><B><C>5</C></B></A> <A i="p"><B><C>5</C></B></A> </root> What I want: ============= <?xml version="1.0" encoding="UTF-8"?> <root> <M i="k">1</M> <A i="p_1"><B><C>5</C></B></A> <A i="p_2"><B><C>5</C></B></A> <A i="p_3"><B><C>5</C></B></A> </root> Output From the XSL: ===================== <?xml version="1.0" encoding="UTF-8"?> <root> <M i="k">1</M> <A i="p_1"><B><C>5</C></B></A> <A i="p_1"><B><C>5</C></B></A> <A i="p_1"><B><C>5</C></B></A> </root> XSL: ====== <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:output method="xml" encoding="UTF-8" /> <!-- Copy everything --> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"> </xsl:apply-templates> </xsl:copy> </xsl:template> <xsl:template match="@i[parent::A]"> <xsl:attribute name="i"><xsl:value-of select="concat(., '_')"/><xsl:value-of select="position()"/></xsl:attribute> </xsl:template> </xsl:stylesheet> thx! ____________________________________________________________________________________ Moody friends. Drama queens. Your life? Nope! - their life, your story. Play Sims Stories at Yahoo! Games. http://sims.yahoo.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSL Formatter V4.2 Release In, Keiko Hiraide | Thread | Re: [xsl] While copying everything,, Dimitre Novatchev |
[xsl] XSL Formatter V4.2 Release In, Keiko Hiraide | Date | Re: [xsl] While copying everything,, Dimitre Novatchev |
Month |