Great, many thanks, that's exactly what I meant.
However, on trying it out, I found that any newlines and indentation within
my <block> element contribute to the string_length, so that my <block> is no
longer 1 character long when they are present.
So I would like to ask again, but this time: how to match any <block> in
which the sum of the lengths of the child <inline> elements is 1 character?
(My newlines and indentation will be outside any <inline> element, but all
the "content" is inside <inline> elements.) Do I need to program a loop
somehow, or is there a handy function?
Ciarán Ó Duibhín
----- Original Message -----
From: "G. Ken Holman" <gkholman(_at_)CraneSoftwrights(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Saturday, December 11, 2010 3:13 AM
Subject: Re: [xsl] template match question
At 2010-12-11 02:30 +0000, Ciarán Ó Duibhín wrote:
Please excuse a specific and elementary query on XSL.
I understand how
<xsl:template match="block[string-length(./inline)=1]">
matches any <block> element which has as child an <inline> element whose
text content is one character in length.
But how can I change this to match any <block>, for which the sum of the
lengths of its <inline> child elements is one character; or alternatively,
any <block> the length of whose whole text content is1 character, since all
the text in my <block> elements is found in child <inline> elements?
If I've understood you correctly, this is what you need:
<xsl:template match="block[string-length(.)=1]">
The block is matched if its string length is one character.
I hope this helps.
. . . . . . . . . Ken
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--