Re: [xsl] configuring a conditional

Subject: Re: [xsl] configuring a conditional
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 24 May 2005 12:11:26 -0400
Bruce,

At 12:13 PM 5/24/2005, you wrote:
That's the odd thing. Changing this message to this:

    <xsl:message>
      <xsl:value-of select="$cite-ref/@linkend"/>:
      <xsl:if test="$cite-ref is key('refs',@linkend)[1]">FIRST</xsl:if>
    </xsl:message>

... does get the expected linkend values back. So the context is correct there with $cite-ref.

Not at all odd -- just what you want! -- if $cite-ref is the context where you'll find your @linkend, start there. Note that the location path "$cite-ref/@linkend" differs from the path "@linkend" in a crucial respect.


Change that test to "$cite-ref is key('refs',$cite-ref/@linkend)[1]" and you should be fine. (And I think that's what I guessed before. :-)

A relative path (one that doesn't start with '/') such as "@linkend" always starts from the context node. Except in the middle of a location path (i.e. in a predicate), the context node is always the current node, that is the node being matched by the template.

Cheers,
Wendell




====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================

Current Thread