|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: How do I do this?
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








