Subject: RE: Problem with str:tokenize
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 27 Jun 2006 15:12:24 +0100
|
> The suggested way doesnot work. The problem is with
> <xsl:for-each select="str:tokenize(//root/path1/info/name,',')">
>
> If I have <xsl:for-each select="//root/path1/info">, then the
> <xsl:for-each select="//root/path2/deptinfo"> for loop works.
>
> So the real problem is with
> "str:tokenize(//root/path1/info/name,',')".
>
> Any suggestions for how I can get this working. I really do
> not know what is the difference.
You clearly didn't understand the previous response. It's hard to know why,
since the response seems clear enough. str:tokenize() constructs a new
document containing the tokens. When you do xsl:for-each on these tokens,
this changes the context node and therefore the meaning of a path expression
starting with "/".
>
> THanks
> Sanket
>
>
>
>
> On 6/27/06, David Carlisle <davidc@xxxxxxxxx> wrote:
> >
> > This is a faq, inside the loop the current node is not in your
> > original document so // does not select nodes from the
> input document.
> > save the input document in a global variable
> >
> > <xsl:variable name="inputdoc" select="/"/>
> >
> > then refer to it as
> >
> > <xsl:for-each select="$inputdoc/root/path2/deptinfo">
> >
> > assuming root is your top level element select="//root/ is a very
> > expensive way to select it as it will search the entire document
> > looking for root elements. You want /root not //root (or in
> this case
> > you want $inputdoc/root not $inputdoc//root )
> >
> > David
> >
> >
> ______________________________________________________________________
> > __ This e-mail has been scanned for all viruses by Star.
> The service
> > is powered by MessageLabs. For more information on a proactive
> > anti-virus service working around the clock, around the
> globe, visit:
> > http://www.star.net.uk
> >
> ______________________________________________________________________
> > __
|