Subject: Re: [xsl] How do I do this? From: Mike Brown <mike@xxxxxxxx> Date: Wed, 21 Aug 2002 13:59:30 -0600 (MDT) |
SoumenS@xxxxxxxxx wrote: > I have a XML based message specification as follows > > <message-text><param/> xxxxx yyyy <param/> zzzz bbbb <param/> > hhhh<param/></message-text> > > I would like to convert it to > > <file-text>{0} xxxxx yyyy {1} zzzz bbbb {2} hhhh{3}<file-text> > > I need to be within the for loop of param and text(), i.e., > > <xsl:for-each select='param | text()'> > > Within this for loop how do I get the param number -- position() would not > work. Like this: count(preceding-sibling::param) If I were you, I would not use a for-each, because it results in the same template (the content of the for-each) being applied to both text nodes and param elements. I would do this instead: <xsl:template match="message-text"> <file-text> <xsl:apply-templates/> </file-text> </xsl:template> <xsl:template match="param"> <xsl:value-of select="concat('{',count(preceding-sibling::param),'}')"/> </xsl:template> letting the built-in template for text nodes take care of the character data. - Mike ____________________________________________________________________________ mike j. brown | xml/xslt: http://skew.org/xml/ denver/boulder, colorado, usa | resume: http://skew.org/~mike/resume/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] How do I do this?, SoumenS | Thread | Re: [xsl] How do I do this?, Wendell Piez |
RE: [xsl] object-oriented XSL, Hunsberger, Peter | Date | [xsl] object-oriented XSL, martin |
Month |