xsl-list
[Top] [All Lists]

Re: using variable in mode attribute

2003-01-10 15:22:10
Hi Long,

At 03:53 PM 1/10/2003, you wrote:
I have the following code which does not work.
if I replace the mode="$BID" with mode="id1" in line 4, it works.
so my question is
does the mode attribute take a variable?

No, it doesn't (too bad).

if it does not, what should I do?

You could have a single alternate mode for B (say, call it "id"), and then differentiate among templates matching your different B elements in their matches:

<xsl:template match="B[(_at_)id = 'id1']" mode="id">
...
</xsl:template>

<xsl:template match="B[(_at_)id = 'id2']" mode="id">
...
</xsl:template>

...or do any of several other things (for example, xsl:choose) to achieve the same effect (processing conditioned on the value of the id element).

It may also interest you to know that if these are *real* (i.e. DTD-declared) ID attributes, you can do

<xsl:template match="id('id1')" mode="id">
...
</xsl:template>

since the id() function (which returns an element by the value of its ID attribute) can appear in a match pattern. But your attribute needs to be declared as type ID for this to work.

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>