xsl-list
[Top] [All Lists]

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

2007-08-01 05:29:12
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(_at_)CraneSoftwrights(_dot_)com
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


--~------------------------------------------------------------------
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>
--~--