Hi, Mansour. Mansour <[EMAIL PROTECTED]> wrote on 2008-01-24 11:27:30 PM: > I really appreciate your help. > tokenize method is not the same, as it reads the elements from the input
> xml document. > I have looked at it and was able to implement the replace method in the > same class. [Snipped sample "replace" method. HZ] > However, in the case of match the elements inside the element calling > match has to be executed. > In other words, The example given with the for-each, in case the > regular expression given for match function was found , then the > for-each will kick in. I must be misunderstanding some subtle point about the definition of regexp:match, because I still don't see why the definition of this extension function needs to have access to the element in which it is being invoked. The definition of the function at the EXSLT web site[1] says the following: <quote> The regexp:match function returns a node set of match elements, each of whose string value is equal to a portion of the first argument string that was captured by the regular expression. If the match is not global, the first match element has a value equal to the portion of the string matched by the entire regular expression. </quote> The definition of str:tokenize [2] says: <quote> The str:tokenize function splits up a string and returns a node set of token elements, each containing one token from the string. The first argument is the string to be tokenized. The second argument is a string consisting of a number of characters. Each character in this string is taken as a delimiting character. The string given by the first argument is split at any occurrence of any of these characters. </quote> In both cases, the function needs to return a node set of elements whose string values are equal to substrings of the first argument string. I think that all you need to do is define two Java functions for regexp:match, one of which has two String and the other of which has three String arguments, to handle the optional third argument to regexp:match. The result type of those functions should be org.w3c.dom.NodeList. You should then be able to use regexp:match in any context in which you could use a function that returns a node set in an XPath expression, without having the implementation of the function worry about the context in which it is used. If you think there's still a situation in which the implementation of regexp:match needs to have access to the body of the XSLT element in which it's being invoked, please let me know. An example that illustrates the difference in how you think str:tokenize and regexp:match should behave would help. Thanks, Henry [1] http://www.exslt.org/regexp/functions/match/index.html [2] http://www.exslt.org/str/functions/tokenize/index.html ------------------------------------------------------------------ Henry Zongaro XSLT Processors Development IBM SWS Toronto Lab T/L 313-6044; Phone +1 905 413-6044 mailto:[EMAIL PROTECTED]