[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Problem with xslt recursion

Subject: Re: Problem with xslt recursion
From: Roopesh Kumar <roopeshkumar_in@xxxxxxxxx>
Date: Tue, 10 Feb 2004 09:27:41 -0800 (PST)
xslt recursive variable
Hi..
Thanks a lot David, for the quick reply and putting up
with the inconsistencies in the code that i sent..
Taking your explaination I have solved the problem by
saying..

<xsl:value-of
select="ResourceTypeSet/Type[number($Index)]"/>

instead of
<xsl:value-of select="ResourceTypeSet/Type[$Index]"/>

The purpose is solved but i want to know if it is the
right thing to do....

Also i have a very long standing problem with
specifying dynamic xpaths...

Suppose my xml is

<a>
  <b>
     <c>try</c>
  </b>
</a>

and my xsl is something like...

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:variable name="path">c</xsl:variable>
<!-- Now i am trying to access the dynamic path a/b/c
-->
<xsl:value-of select="/a/b/$path"/>
<!-- The error shown is Nodetest expected..-->

<!-- Next i try concatenating the values in a variable
-->

<xsl:variable name="fullpath"
select="concat('/a/b/',$path)"/>

<!-- and then try to access the value for this path
-->

<xsl:value-of select="$fullpath"/>
<!-- Here the xpath /a/b/c is displayed. So how do i
use the variable path to actually get the value for
that path which happens to be "try" in this case-->
		
</xsl:template>
</xsl:stylesheet>


--- David Carlisle <davidc@xxxxxxxxx> wrote:
> 
>   and i have a recursive call to a template whose
>   function is to concatenate all the values with the
> tag
> 
> You don't need recursion to do that
> <xsl:copy-of select="Type/text()"/>
> is all you need.
> 
> 
> However
> 
> <xsl:value-of select ="ResourceTypeSet/Type[$In]"/>
> 
> I assume thst isn't your actual code as $In is not
> defined, assuming
> that you have
> 
> <xsl:value-of select
> ="ResourceTypeSet/Type[$Index]"/>
> 
> then your problem is that the short hand Type[3] for
> Type[position()=3]
> only tales place if the thing in teh [] is a number.
> 
> $Index starts off as a number
> <xsl:with-param name="Index" select="1"/>
> 
> but then you redeclare it to be a result tree
> fragment
> <xsl:with-param name="Index"><xsl:value-of
> select="$Index+1"/></xsl:with-param>
> 
> If you use a result tree fragment as a boolean then
> it is always true as
> it corresponds to a non empty node set so
> 
> ResourceTypeSet/Type[$Index]
> 
> is
> ResourceTypeSet/Type[true()]
> 
> which is
> ResourceTypeSet/Type
> 
> ie it selects all the Tyope nodes, then 
> <xsl:value-of
> 
> always returns the value of (only) the first node
> selected, so you will
> always get the first one back.
> 
> David
> 
> 
> -- 
> http://www.dcarlisle.demon.co.uk/matthew
> 
>
________________________________________________________________________
> This e-mail has been scanned for all viruses by Star
> Internet. 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
>
________________________________________________________________________
> 
>  XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
> 


=====
Luv
Roopesh
Software Engineer 
Verizon Data Services India 
[98842-40222]

__________________________________________________________________

One manages uncertainty; one does not solve it.  
Eliminating uncertainty eliminates opportunity.  
Chaos is the engine of evolution.

__________________________________
Do you Yahoo!?
Yahoo! Finance: Get your refund fast by filing online.
http://taxes.yahoo.com/filing.html

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.