Shruti --
I'm not sure I understand what the problem is here. The NodeIterator
that you receive is a clone of another NodeIterator. Iterating on it
shouldn't affect anything else.
Gary
Shruti Ahuja wrote:
>
> Gary,
>
> if i had a NodeIterator as the second argument after ExpressionContext , i
> will also have to change the way the function is called , since otherwise
> the argument values get disturbed.
>
> -----Original Message-----
> From: Gary L Peskin [mailto:[EMAIL PROTECTED]]
> Sent: Monday, July 23, 2001 12:49 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Ext Func in XPath
>
> Try having one of the functions take a
> org.w3c.dom.traversal.NodeIterator as its second argument after the
> ExpressionContext. This should get called for case 1. The one with the
> two string arguments should get called for case 2. You can probably
> just iterate through the nodes however you want and then call the case 2
> function for each one.
>
> Gary
>
> Shruti Ahuja wrote:
> >
> > i need 2 versions of this function since there are 2 ways this function
> can
> > be invoked -
> >
> > 1. //book[txt:contains_words(./,"Trenton")]
> > 2. txt:contains_words("This is a book","book")
> >
> > the first call results in searching an XML document . it searches for
> > "Trenton" in the text of all book elements and returns all those book
> > elements which have "Trenton" in their text.
> >
> > whereas the second one should return the string "true" or "false" by just
> > searching the second string in the first string . It will search "book" in
> > "This is a book", and should return "true" in this case.
> >
> > i was initially using just one function which was expecting an
> > ExpressionContext in its argument , but i was getting an exception in
> > callFunction() in ExtensionHandlerJavaClass.java in extensions folder.
> > how do i overcome this problem ?
> >
> > -----Original Message-----
> > From: Gary L Peskin [mailto:[EMAIL PROTECTED]]
> > Sent: Monday, July 23, 2001 12:09 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: Ext Func in XPath
> >
> > The method selection mechanism in Xalan will always prefer the second
> > signature since signatures that begin with an ExpressionContext argument
> > are preferred over those that don't. Why do you need these two
> > functions with the same name? Do they do different things?
> >
> > Gary
> >
> > Shruti Ahuja wrote:
> > >
> > > > Hello
> > > >
> > > > i have made an extension function in Xpath by the name contains_words
> > > > .This function has 2 overloaded versions
> > > > public static boolean contains_words(String searchstr,String tosearch)
> > > > {
> > > > //code
> > > > }
> > > > and
> > > > public static boolean contains_words(ExpressionContext mycontext,
> String
> > > > searchstr,String tosearch)
> > > > {
> > > > //code
> > > > }
> > > >
> > > >
> > > > i am calling this function in my xpath expression as
> > > > txt:conatins_words("this is a book","book")
> > > > where txt is a namespace which maps to this extension class.
> > > > The problem is that this call always results in the second
> > contains_words
> > > > being invoked .i want the first one to be invoked.
> > > > can someone suggest the reason for it to behave this way.
> > > >
> > > >
> > > > thanx
> > > > Shruti