Jeffrey,
I should add -- the harder part is matching the correct text node.
In your case, assuming you want the character in bold to be the initial
character inside the p, at any level,
<xsl:template match="text()[not(preceding::text()
[count(.|current()/ancestor::p//text()) =
count(current()/ancestor::p//text())])]">
would do it, but you can see how horrible that is!
Not foolproof, but
match="text()[starts-with(ancestor::p,.)]"
would usually work (and would most probably perform better).
So today's XSLT Challenge is to write a better match for this problem.
Cheers,
Wendell
At 01:54 PM 9/30/2003, I wrote:
XSLT 1.0 is not really a great string-processing language, which is what
you need here, but its string handling is good enough to manage this ...
you need the functions
substring($string, $start, $length)
and maybe substring-after($string, $substring)
So:
<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.)
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