pankaj(_dot_)c(_at_)thomsondigital(_dot_)com wrote:
Input:
=====
<para>Abc efg ijk <i>pie</i>amf. The quick brown <b>fox</b> jumps over a
<i>lazy little dog</i></para>
Required
======
<para mypara="type_first"><dummy id="first_letter">A</dummy>bc efg ijk
<i>pie</i>amf. The quick brown <b>fox</b> jumps over a <i>lazy little
dog</i><para>
<xsl:template match="para">
<para mypara="type_first">
<xsl:apply-templates/>
</para>
</xsl:template>
<xsl:template match="para//text()[1]">
<dummy id="first_letter">
<xsl:value-of select="substring(., 1, 1)"/>
</dummy>
<xsl:value-of select="substring(., 2)"/>
</xsl:template>
should do I think. I am not sure whether you want to perform that
"dummy" wrapper for any first descendant text node, if you only want it
for the first text child node then use
<xsl:template match="para">
<para mypara="type_first">
<xsl:apply-templates/>
</para>
</xsl:template>
<xsl:template match="para/text()[1]">
<dummy id="first_letter">
<xsl:value-of select="substring(., 1, 1)"/>
</dummy>
<xsl:value-of select="substring(., 2)"/>
</xsl:template>
--
Martin Honnen
http://msmvps.com/blogs/martin_honnen/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--