Re: [xsl] Testing for parent/parent node or ancestor node

Subject: Re: [xsl] Testing for parent/parent node or ancestor node
From: Andrew Welch <andrew.j.welch@xxxxxxxxx>
Date: Fri, 30 Dec 2011 15:03:34 +0000
> <xsl:when test="../parent=Field">53</xsl:when>

That is getting all sibling elements called <parent>, and testing if
any has a string value equal to any child <Field> elements. In
expanded form it's "parent::*/child::parent = child::Field" which
might make it easier to understand.

What you really want is:

test="parent::*/parent::Field"

...where parent::* selects the parent node regardless of name, and
then parent::Field get's the parent of that node if its called
'Field'.  If that element exists it will be returned and the Effective
Boolean Value is true and so the test returns true.

Or just use tunnelled params.

-- 
Andrew Welch
http://andrewjwelch.com

Current Thread