This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: xpath based on condition


Use:

<xsl:variable name="xpath" 
    select="//Header[$Path]/*[name()=$Path] 
          |
            //Header[not($Path)]"/>

Because the conditions in the two predicates negate each other, only
one of the operands of the above union will actually be selected.

Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL


--- Joerg Heinicke <joerg dot heinicke at gmx dot de> wrote:

> Hello Aruniima,
> 
> you have to use <xsl:copy-of select="//Header/*[name()=$Path]"/>, but
> with this you will create a Result Tree Fragment, which can be
> converted back to a node set via an extension function.
> 
> But maybe it's enough to use:
> 
> <xsl:variable name="xpath-header" select="//Header"/>
> 
> <xsl:variable name="xpath" select="$xpath-header/*[name()=$Path]"/>
> 
> and do the logic whether to use $xpath-header or $xpath later. Maybe
> you can also use
> 
> <xsl:variable name="xpath" select="//Header/*[name()=$Path] |
> //Header"/>
> 
> (UNION of both node sets) and choose later the correct node/value
> from
> this node set.
> 
> Regards,
> 
> Joerg
> 
> 
> 
> __________________________________________________
> Do You Yahoo!?
> HotJobs - Search Thousands of New Jobs
> http://www.hotjobs.com


__________________________________________________
Do You Yahoo!?
HotJobs - Search Thousands of New Jobs
http://www.hotjobs.com

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]