[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
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,
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.
At 01:54 PM 9/30/2003, I wrote:
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Re: [xsl] Selecting First Letter
Subject: Re: [xsl] Selecting First Letter From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> Date: Tue, 30 Sep 2003 14:35:57 -0400 |
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@xxxxxxxxxxxxxxxx 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Selecting First Letter, Wendell Piez | Thread | [xsl] Re: Selecting First Letter, Dimitre Novatchev |
Re: [xsl] Selecting First Letter, Brook Ellingwood | Date | Re: [xsl] Best way to use global pa, WebShark |
Month |