You can try this dirty hack hack that has proven that it works again and again:
<xsl:for-each select="//*[position() <= string-length(MyData/MyValue)]"> <someTags> <xsl:value-of select="substring(MyData/MyValue, position(), 1)"/> </someTags> </xsl:for-each>
This will work if //* matches more nodes than the number of characters in your line ... Of course, this also deserves an odd line of comment for a poor colleague reading your code afterwards ... ;-)
Note I know there are XSLT purists. But when you need to do this work and donβt worry about XSLT hyper verbosity, sometimes these tricks are awesome! IMO
Note also . I posed a performance issue here to make sure iteration or recursion works better: XSLT iteration or recursion performance
Lukas Eder
source share