- From: <Svgdeveloper@aol.com>
- Date: Fri, 22 Mar 2002 07:18:05 -0500 (EST)
- To: Michael.Kay@softwareag.com
- Cc: www-xpath-comments@w3.org
- Message-ID: <dc.149e9052.29cc7ac9@aol.com>
In a message dated 22/03/02 11:46:42 GMT Standard Time, Michael.Kay@softwareag.com writes: > No. Following the detailed specification, substring("12345", 0, 3) selects > all characters whose position is >= 0 and < 3. The position of the "3" is > 3, > which is not <3, therefore it is not included in the result. > > Michael Kay > > > -----Original Message----- > > From: Svgdeveloper@aol.com [mailto:Svgdeveloper@aol.com] > > Sent: 21 March 2002 21:26 > > To: www-xpath-comments@w3.org > > Subject: Erratum substring() function in XPath 1.0? > > > > > > It seems to me that the following bullet point for the > > substring() function > > is incorrect: > > > > substring("12345", 0, 3) returns "12" > > > > Shouldn't it read > > substring("12345", 0, 3) returns "123"? > > > > Andrew Watt Michael, Thanks for the prompt response. However, I am not yet convinced that the description of the substring() function is totally coherent. The example which I quoted uses as its second argument the number zero, which given that the first character in a string is numbered as one means that the argument is, arguably, in error since it refers to a character which doesn't exist. The first sentence of the description of the substring() function states that the third argument is the "length" of the string returned. However a string "12" has, as I understand the term "length" (and as it is used in relation to the string-length() function) a length of 2, not 3 as the third argument would suggest. The problem seems to arise from the seeming acceptance of invalid/unreal values for the second argument and (I assume) third argument. For example, substring("12345", 3, 8) would return "345" I assume, again the "length" would diverge from the value of the third argument. I guess that, in some surreal sense, you could argue that the length *is* 8 - made up of 3 real characters and 5 non-existent ones. <shrug/> If, as seems to be the case, the substring() function's third argument may not always return the "length" of the returned string maybe the reference to length should be deleted or qualified in the first sentence. Perhaps I am being obtuse - I often am :) - but why is a value of 0, for example, permitted for the second argument to the function? Andrew Watt
Received on Friday, 22 March 2002 11:00:38 UTC