[xsl] Select first letter of first word [xsltproc 1.0]

Subject: [xsl] Select first letter of first word [xsltproc 1.0]
From: pankaj.c@xxxxxxxxxxxxxxxxxx
Date: Sat, 30 Oct 2010 14:46:03 +0530
Input:
=====
<para>Abc efg ijk <i>pie</i>amf. The quick brown <b>fox</b> jumps over a 
<i>lazy little dog</i></para>

Stylesheet
=======
        <xsl:template match="para">
        <xsl:copy>
            <xsl:attribute name="mypara">type_first</xsl:attribute>
            <dummy id="first_letter"><xsl:value-of 
select="substring(.,1,1)"/></dummy>
            <xsl:apply-templates 
select="substring(.,2,string-length(.))"/>
        </xsl:copy>
        </xsl:template>

Results
=====
<para mypara="type_first"><dummy id="first_letter">A</dummy></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:apply-templates select="substring(.,2,string-length(.))"/> : @select 
works in context of nodes only and not with string function. 
.
If I use value-of it obviously returns me string value.
 <xsl:value-of select="substring(.,2,string-length(.))"/>.

<para mypara="type_first"><dummy id="first_letter">A</dummy>bc efg ijk 
pieamf. The quick brown fox jumps over a lazy little dog</para>: Missing 
<i> and <b>. 

Is there a way out.

Thanks,
Pankaj Chaturvedi

Current Thread