[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: question


Subject: Re: <xsl:copy-of> question
From: crism@xxxxxxxxxxxxx (Christopher R. Maden)
Date: Thu, 16 Dec 1999 09:20:19 -0800

Ray Waldin pointed out off-list, and quite rightly, that my previous
response was incorrect:

>"Christopher R. Maden" wrote:
>> [Nikolai Grigoriev]
>> ><!-- Processing of salary nodes is disabled for FullSecurity="0" -->
>> ><xsl:template match="salary[/employee/@FullSecurity=0]"/>
>>
>> Not quite - that will hide all salaries in any document in which there is
>> any employee with FullSecurity="0".  You need to scope it:
>  ^^^
>
>I think you meant to say: that will hide all salaries in any document in
>which the
>*document element* is an employee with FullSecurity="0".
>
>> <xsl:template match="employee[@FullSecurity=0]/salary"/>
>>
>> or, alternately:
>>
>> <xsl:template match="salary[../employee/@FullSecurity=0]"/>
>>
>> though I prefer the former for clarity.
>
>So do I as the latter is incorrect.  It matches salary elements with
>*sibling* employee
>elements having FullSecurity="0".  From the XPath REC:
>
>> a location step of .. is short for parent::node(). For example, ../title
>>is short for
>> parent::node()/child::title and so will select the title children of the
>>parent of the
>> context node.
>
>Parent employee elements are matched like this:
>
><xsl:template match="salary[parent::employee/@FullSecurity=0]"/>
>
>or
>
><xsl:template match="salary[..[name()='employee']/@FullSecurity=0]"/>
>
>though I prefer the former for clarity.  :)
>
>-Ray

-Chris

--
Christopher R. Maden, Solutions Architect
Exemplary Technologies
One Embarcadero Center, Ste. 2405
San Francisco, CA 94111



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



Current Thread
Keywords