Re: [xsl] Length of a literal string containing embedded tags

Subject: Re: [xsl] Length of a literal string containing embedded tags
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 01 Aug 2007 08:28:24 -0400
At 2007-08-01 13:13 +0100, Darren Wheatley wrote:
Could anyone tell me how I can calculate the length of a string containing
inline elements?

E.g.

With a context node like this:

<text>this is some text<SUP>3</SUP>some more</text>

"string-length(.)" should return 43,

No, it should not return 45 because that is not the number of characters in the string value of the <text> element (assuming your current node is that element).


but it returns less than that.

I make it 27 by eye.


My assumption is that the embedded tags are being treated as proper nodes
rather than literal text.

Yes, because the syntax used to represent a node is not in the XPath data model and therefore is not available to the XSLT processor.


Any idea how I can make sure that each character of the embedded tags counts
as a character when calculating the length of the overall string?

By not using XSLT.


E.g. <SUP> would count as 5 characters

In XSLT there is no difference in the data model between an element represented by:


<SUP>

or by:

<SUP >

... which have a very different number of characters.

You'll have to use something that represents the syntax of XML markup in the data model.

I hope this helps.

. . . . . . . . . . . Ken

--
Upcoming public training: XSLT/XSL-FO Sep 10, UBL/code lists Oct 1
World-wide corporate, govt. & user group XML, XSL and UBL training
RSS feeds:     publicly-available developer resources and training
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Cancer Awareness Jul'07  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal

Current Thread