Date: Mon, 18 Aug 2003 09:54:12 +0100
From: David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk>
Subject: Re: [xsl] Mixed Content Substring()
Your description wasn't very clear, it woul dhave been easier if you'd
have shown the desired output.
<foo>
<bar type="ant"><rub type="glyph">A.</rub> This is a test.</bar>
<bar type="ant"><rub type="glyph">A.</rub> Another test.</bar>
<bar type="res"><rub type="glyph">R.</rub> This is a test.</bar>
<bar type="res"><rub type="glyph">Res.</rub> This is a test.</bar>
<bar type="res"> Certainly another test.</bar>
<bar type="res"><rub type="glyph">Ant.</rub> Boring test.</bar>
<bar type="ant">This is a test.</bar>
<bar type="hymn"><rub type="glyph">Y.</rub> Lah di Dah.</bar>
</foo>
Sorry, the output would realy end up looking something like:
<div class="bar">
<span class="ant">
<a href="incipits/ant/T.html"><img src="images/goto.png" alt="Go"/></a>
<span class="rubglyph">A.</span> This is a test. </span>
</div>
from something like:
<bar type="ant"><rub type="glyph">A.</rub> This is a test.</bar>
It is the formation of the filename part of the URL. I can do all the
other parts, it was just getting the first-letter that was puzzling me.
As it is to provide a clickable image leading to the page of
incipits starting with this letter. I've used translate() to
make sure the (usually upper case) letters are upper since they
will always be a-z.
In most cases above that is a space, but sice you had a normalize-space
in one of your suggestions I assume you want the first non space letter
in a text node child of bar, which is something like
substring(normalize-space(text()[normalize-space()]),1,1)
Yup, and a quick test seems to indicate that works! I'm not
entirely sure I understand text()[normalize-space()] though.
That selects the text() node restricting it to the normalize-spaced
version of itself?
David to the rescue as usual!
Many thanks,
James
--
Dr James Cummings, James(_dot_)Cummings(_at_)uea(_dot_)ac(_dot_)uk,
http://www.uea.ac.uk/~q503
Cursus Project, School of Music, University of East Anglia,
Norwich, Norfolk, NR4 7TJ, UK Tel:(01603)593-595
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list