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

Subject: Re: [xsl] Select first letter of first word [xsltproc 1.0]
From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
Date: Sat, 30 Oct 2010 16:16:57 +0530
The following seems to work:

<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:value-of select="substring(text()[1], 2)" />
	  <xsl:copy-of select="node()[position() &gt; 1]" />
      </xsl:copy>
</xsl:template>


On Sat, Oct 30, 2010 at 2:46 PM,  <pankaj.c@xxxxxxxxxxxxxxxxxx> 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>
>
> Stylesheet
> =======
> B  B  B  B <xsl:template match="para">
> B  B  B  B <xsl:copy>
> B  B  B  B  B  B <xsl:attribute name="mypara">type_first</xsl:attribute>
> B  B  B  B  B  B <dummy id="first_letter"><xsl:value-of
> select="substring(.,1,1)"/></dummy>
> B  B  B  B  B  B <xsl:apply-templates
> select="substring(.,2,string-length(.))"/>
> B  B  B  B </xsl:copy>
> B  B  B  B </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>
>
> B <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.
> B <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




--
Regards,
Mukul Gandhi

Current Thread