xsl-list
[Top] [All Lists]

Re: Reusing XPath statements (defining once and only once)

2003-04-17 15:16:05
David,

At 05:36 PM 4/17/2003, you wrote:
QUESTION:
The stylesheet works, but the XPath expressions bother me. I would like to
declare this XPath once:

@* | * | comment() | processing-instruction() | text()

and refer to it elsewhere. I tried to make it a variable, but it doesn't
seem to work.

Nope, it's not going to. Variables are bound to values, not to expressions that can be evaluated.

If you had a particular set of nodes you were interested in, they could be bound to a variable, but that's not what's happening here. The nodes returned by "@* | * | comment() | processing-instruction() | text()" will vary based on the context of evaluation.

It may be some comfort to know, however, that the XPath "node() | @*" (short for "child::node() | attribute::*" is equivalent to the longer expression you have. So just say that.

As for other style matters, unless there's a maintenance issue that makes you prefer this:

<xsl:choose>
  <xsl:when test="Context[(_at_)path='/axis']" />
  <xsl:otherwise>
   <Context debug="0"
    docBase="c:\xml-axis-10\webapps\axis" path="/axis"
    reloadable="true" />
  </xsl:otherwise>
</xsl:choose>

you might prefer the equivalent:

<xsl:if test="not(Context[(_at_)path='/axis'])">
  <Context debug="0"
  docBase="c:\xml-axis-10\webapps\axis" path="/axis"
  reloadable="true" />
</xsl:if>

HTH--!

Cheers,
Wendell



======================================================================
Wendell Piez                            
mailto:wapiez(_at_)mulberrytech(_dot_)com
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
======================================================================


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



<Prev in Thread] Current Thread [Next in Thread>