Help | Site Map
Connecting Tech Pros Worldwide
 
 
LinkBack Thread Tools
  #1  
Old July 20th, 2005, 07:09 AM
Eliza Zadura
Guest
 
Posts: n/a
Default Context

The following question is about XPath and context, as I am not sure I'm
grasping the concept entirely and this is causing me some problems while
working on my XSL transformation.

I have checked the XPath specification and am somewhat familiar with the
different addressing mechanisms. What confuses me is the context when
using templates and various (nested) <xsl:for-each>, <xsl:if> and
<xsl:when> expressions.

For example, say I have a named template where test-param is the value
of a certain node.

<xsl:template name="test_temp">
<xsl:param name="test_param"/>
...
...
<xsl:for-each select="[some other node]">

<!--here, I assume the context is that of [some other node], and not the
node represented by test_param?-->

<xsl:if test="[yet another node]">

<!--What about the context here, is it that of [yet another node]?-->

</xsl:if>
</xsl:for-each>

<!--And here, am I back to the original context, the one defined by the
test_param?-->

</xsl:template>

And so on, and so forth...
To put it briefly: Does every expression that evaluates a set of nodes
change the context to that particular set, thus enabling me to use ./
while referring to attributes or other subnodes of that node?

-----------------
Eliza Zadura
Trainee-Developer

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
  #2  
Old July 20th, 2005, 07:09 AM
Marrow
Guest
 
Posts: n/a
Default Re: Context

Hi Eliza,
[color=blue]
> For example, say I have a named template where test-param is the value
> of a certain node.
>
> <xsl:template name="test_temp">
> <xsl:param name="test_param"/>[/color]

^^^^^ the context here will be whatever the context node was at the point of
the <xsl:call-template>. Parameters have no effect on the context.[color=blue]
> ..
> ..
> <xsl:for-each select="[some other node]">
>
> <!--here, I assume the context is that of [some other node], and not the
> node represented by test_param?-->[/color]

^^^^^ yes, the context node will be the [some other node][color=blue]
>
> <xsl:if test="[yet another node]">
>
> <!--What about the context here, is it that of [yet another node]?-->
>
> </xsl:if>
> </xsl:for-each>
>
> <!--And here, am I back to the original context, the one defined by the
> test_param?-->[/color]

^^^^^ No, because the context was never the node(s) in the $test_param - the
context will revert to the context node at the point of the
<xsl:call-template>[color=blue]
>
> </xsl:template>[/color]


Hope this helps
Marrow
http://www.marrowsoft.com - home of Xselerator (XSLT IDE and debugger)
http://www.topxml.com/Xselerator


"Eliza Zadura" <eliza.zadura@sync.se> wrote in message
news:3f5ef1f6$0$62080$75868355@news.frii.net...[color=blue]
> The following question is about XPath and context, as I am not sure I'm
> grasping the concept entirely and this is causing me some problems while
> working on my XSL transformation.
>
> I have checked the XPath specification and am somewhat familiar with the
> different addressing mechanisms. What confuses me is the context when
> using templates and various (nested) <xsl:for-each>, <xsl:if> and
> <xsl:when> expressions.
>
> For example, say I have a named template where test-param is the value
> of a certain node.
>
> <xsl:template name="test_temp">
> <xsl:param name="test_param"/>
> ..
> ..
> <xsl:for-each select="[some other node]">
>
> <!--here, I assume the context is that of [some other node], and not the
> node represented by test_param?-->
>
> <xsl:if test="[yet another node]">
>
> <!--What about the context here, is it that of [yet another node]?-->
>
> </xsl:if>
> </xsl:for-each>
>
> <!--And here, am I back to the original context, the one defined by the
> test_param?-->
>
> </xsl:template>
>
> And so on, and so forth...
> To put it briefly: Does every expression that evaluates a set of nodes
> change the context to that particular set, thus enabling me to use ./
> while referring to attributes or other subnodes of that node?
>
> -----------------
> Eliza Zadura
> Trainee-Developer
>
> *** Sent via Developersdex http://www.developersdex.com ***
> Don't just participate in USENET...get rewarded for it![/color]


  #3  
Old July 20th, 2005, 07:09 AM
Eliza Zadura
Guest
 
Posts: n/a
Default Re: Context

Thank you for your reply. That is what I thought, but I wanted it
confirmed.

What about if I have nested for loops? Will the context of the inner
loop be that of the inner select?

I'm having to do quite horrible loops and conditions to accomplish what
I need, and find all this a bit confusing...

-----------------
Eliza Zadura
Trainee-Developer

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
 

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over network members.
Post your question now . . .
It's fast and it's free

Popular Articles