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>
--~--