<xsl:template match="text()">
<xsl:variable name="initial" select="substring(.,1,1)">
<b><xsl:value-of select="$initial"/></b>
<xsl:value-of select="substring-after(.,$initial)"/>
</xsl:template>
should do it. (The rest would be an identity transform.)
I suspect he didn't want to do it on every text node, perhaps only the
first text node in a <p> element. So there might be a need to refine the
conditions a bit:
(a) in the above template, do something to test whether it's one of the
text nodes you want to treat this way, e.g. by testing whether
<xsl:number level="any" from="p"> is 1
or (b) in the template rule for the <p> element, process the descendants
with a parameter set to the generate-id() of the first descendant text
node, and test this parameter in the text template.
Michael Kay
Cheers,
Wendell
At 01:33 PM 9/30/2003, you wrote:
I would like to be able to select the
first letter of the first text node
within a hierarchy, e.g., the "S" here:
<content>
<p><a href="...">Some</a> Text</p>
</content>
and create a new element with that letter
while keeping the rest of the structure
as is, e.g:
<content>
<p><a href="..."><b>S</b>ome</a> Text</p>
</content>
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML
and XML
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list