Henry,
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.
public static NodeList replace(String str, String regex, String replacement)
{
NodeSet resultSet = new NodeSet();
Document doc = DocumentHolder.m_doc;
Element element = doc.createElement("replaced");
element.appendChild(doc.createTextNode(str.replaceAll(regex,
replacement)));
resultSet.addNode(element);
return resultSet;
}
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.
Hope this makes things clear.
Henry Zongaro wrote:
Hi, Mansour.
Mansour <[EMAIL PROTECTED]> wrote on 2008-01-23 04:44:07 PM:
> Henry Zongaro wrote:
> > Mansour <[EMAIL PROTECTED]> wrote on 2008-01-21 10:40:13 PM:
> > > Ok, I need to implement the ESLT function for match. Somehting like
> > this:
> > >
> > > <xsl:for-each select="regexp:match('word')">
> > > <WORD>
> > > <xsl:value-of select="." />
> > > </WORD>
> > > </xsl:for-each>
> > >
> > > I have added the method match and am able to call it
successfully. But
> > > how do I retrieve the part inside the for-each?
> > >
> > > Is there a way to access the sheet elements from the
> > ExpressionContext ?
> > Your example uses an extension function. Would it be possible for
you
> > to use an extension element instead? It would seem more natural to
> > want to get the element and its children in that context than in the
> > context of an extension function.
> >
> You are absolutely right. But in my case, where I am trying to follow
> the specs of exslt.org, I need it to be in a function. The syntax for
> "match" function can be found at
> http://www.exslt.org/regexp/functions/match/index.html. If I am
going to
> implement this natively then I need the xslt code to be portable,
> therefore it has to follow the specs.
I missed the fact that you're implementing the EXSLT regexp:match
function specifically. It's not clear to me why that function would
need to have access to the content of the xsl:for-each element. Isn't
it purely a function of its arguments?
I suggest you take a look at the ExsltStrings.tokenize method, which
implements the str:tokenize function, for ideas - though I know that
implementation has a memory leak. See [1] for details.
I hope that helps.
Thanks,
Henry
[1] http://issues.apache.org/jira/browse/XALANJ-2215
------------------------------------------------------------------
Henry Zongaro XSLT Processors Development
IBM SWS Toronto Lab T/L 313-6044; Phone +1 905 413-6044
mailto:[EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]