RE: variable and match

Subject: RE: variable and match
From: Ross Cormier <merex@xxxxxxxx>
Date: Fri, 12 May 2000 07:34:34 -0500
OK, then how can I dynamically create a template in XSLT?

See the following for an example of what I am trying to do.

Thanks,
Ross

Original XML:
<ROWSET>
<REPLACE EL="FOO"/> <--I want to use this element to tell the xsl what to replace-->
<FOO>
<DATA1>data1</DATA1>
<DATA1>data1</DATA1>
</FOO>
</ROWSET>


After Transform:
<ROWSET>
  <NEWELEMENT>
    <DATA1>data1</DATA1>
    <DATA1>data1</DATA1>
  </NEWELEMENT>
</ROWSET>

Another example:
<ROWSET>
  <REPLACE EL="BAZ"/>
  <BAZ>
    <DATA1>data1</DATA1>
    <DATA1>data1</DATA1>
  </BAZ>
</ROWSET>

After Transform:
<ROWSET>
  <NEWELEMENT>
    <DATA1>data1</DATA1>
    <DATA1>data1</DATA1>
  </NEWELEMENT>
</ROWSET>


The FOO|BAZ element could be one of 30 different elements and new ones are added all of the time, so I dont want to do something like this:
<xsl:template match="/ROWSET/FOO|FOOBAR|BAZ">
<NEWELEMENT><xsl:apply-templates/></NEWELEMENT>
</xsl:template>



At 09:51 AM 5/12/00 +0100, you wrote:
> Can I use a variable in the match part of xsl:template?
>
>
> <xsl:variable name="x" select="/ROWSET/REPLACE/@EL"/>
> <xsl:template match="/ROWSET/{$x}">

No, you can't, neither can you use curly braces. In any case, you've got the
wrong model of what variables are: you can't use them to do textual
substitution of one bit of XPath syntax into another bit of XPath syntax.

Mike Kay


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


Current Thread