View Single Post
  #2 (permalink)  
Old September 5th, 2006, 04:04 AM
mhkay's Avatar
mhkay mhkay is offline
Wrox Author
Points: 18,487, Level: 59
Points: 18,487, Level: 59 Points: 18,487, Level: 59 Points: 18,487, Level: 59
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Apr 2004
Location: Reading, Berks, United Kingdom.
Posts: 4,962
Thanks: 0
Thanked 292 Times in 287 Posts
Default

Inside xsl:analyze-string, position() gives you the position in the sequence of matching and non-matching substrings. So the non-matching ones are at positions 1,3,5 etc. So you should be able to write:

     <xsl:non-matching-substring>
        <xsl:variable name="p" select="(position()+1) div 2"/>
        <xsl:element name="{$entry[$p]}">
          <xsl:value-of select="."/>
        </xsl:element>
      </xsl:non-matching-substring>


Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference
Reply With Quote