xsl-list
[Top] [All Lists]

Re: [xsl] XSLT recursive template to check grand parent

2007-04-18 07:49:07
Tech Guru wrote:
Hello Group,
                I am trying to develop a recursive template to check grand 
parent of a node and print some child info about grand parent. I face some 
problem  of selecting grand parent in the recursive template. I have put xslt 
template for your information

<xsl:template name="urlParentTemplate">
<xsl:param name="parent"/>
<xsl:value-of select="concat('*',$parent/YMIA:Id)"/>
<xsl:if test="ancestor::$parent[2]"> <!-- it gives error here -->

What error? This is not a valid XPath. What are you trying to get, the parent of $parent[2]? In that case, use:

$parent[2]/..

or (grandparent):

$parent[2]/../..

<xsl:call-template name="urlParentTemplate">
<xsl:with-param name="parent" select="ancestor::*[2]"/><!-- it gives error here 
too-->

What error? It really helps if you tell us the precise wording of your errors. In this case,t he syntax is correct, but there may be no context item, in which case the ancestor::* will give you an error.


I'm not sure what you are trying to pull, but it looks that you are trying to traverse the ancestor axis, by hand, which can be achieved in a much easier way. What exactly do you want to achieve with this named template? Why do you use a named template with a parameter that holds a node, instead of using a matching template? Can you give a bit of context information, i.e., what is the (partial) source, how does your stylesheet look like (only relevant parts please)?

Also, in a subsequent post, please clarify whether you use XSLT 1.0 or 2.0.

Cheers,
-- Abel Braaksma


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--