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]

AW: for-each with included variable


Thank you David and Mike, 


David's solution didn't bring the result I expected, I'm not sure why, but
the output stays exactly the same as before. Which I find unsettling - like
always when I'm clueless.

Mike's approach won't work because I cannot use key() inside a template.
I'll try the generate-id() part once I've gotten more familiar with this
whole thing, which might take a while as far as I can tell. I'm still
struggling with the basics. :)

For now I picked another solution (found it in the FAQ, which is a good
one), that might not be overly elegant, but works. The variable now holds
the entire expression, not just a list of single literals.

IncludeMe.xsl:

<xsl:variable name="myOPTypeList" select="(.//*[@OPTypeRef='Type1'])[1] |
(.//*[@OPTypeRef='Type2'])[1] | (.//*[@OPTypeRef='Type3'])[1]"/>

DoSomeStuff.xsl:

<xsl:include href="IncludeMe.xsl"/>
<xsl:for-each select="$myOPTypeList">
  <!-- do some stuff -->
</xsl:for-each>

Not exactly the way I wanted it, but at least I have a central place for
changes, and I have it when I need it - NOW. :)


Renato

> > <xsl:for-each select="(.//*[@OPTypeRef='Type1'])[1] |
> > (.//*[@OPTypeRef='Type2'])[1] | (.//*[@OPTypeRef='Type3'])[1]">
> >   <!-- do some stuff -->
> > </xsl:for-each>
> >
> Someone else has pointed out your simple coding error, but how about a
> completely different approach:
> 
> <xsl:key name="OKtypes"
>          match="*[@OPTypeRef[.='Type1' or .='Type2' or .='Type3']]"
>          use="1"/>
> 
> <xsl:for-each select="key('OKtypes', 1)[1]"> ...
> 
> (This only works if ".//*" in your code is searching the 
> whole document: if
> not, you could change the use= in the key to be the 
> generate-id() of the
> relevant ancestor node.)
> 
> Mike Kay
> Software AG

 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]