RE: [xsl] Reverse lookup table

Subject: RE: [xsl] Reverse lookup table
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Wed, 10 Jul 2002 09:07:19 +0100
The standard technique is to declare a global variable

<xsl:variable name="root" select="/"/>

that allows you to refer to the principal source document at any time.

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Dunning, John
> Sent: 09 July 2002 20:31
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Reverse lookup table
> 
> 
> Hi all,
> 
> I'm posting this as a follow-up to a post I made a couple 
> weeks ago (changing scope in for-each) which I guess could 
> have been phrased more clearly.  What I'm trying to 
> accomplish is a 'reverse' lookup table; that is, if something 
> is *not* in the document, have the stylesheet supply the 
> boilerplate text.  If the answer is indeed a FAQ, please 
> forgive my thickness and please help clarify.
> 
> The problem in all my attempted solutions is that once I 
> start looping through the lookup table my scope shifts from 
> the XML document to the stylesheet.  The logic I'm using is:
> + get the organization from the XML doc (AP)
> + find that organization in the lookup table
> + loop through the countries that make up that organization in the 
> + lookup
> table comparing them to the XML document (this step is where 
> the problem lies).
> 
> Again, any and all help is appreciated.  Thanks, John
> 
> <!-- INPUT XML -->
>    <regional>
>     <region>
>      <country>AP</country>
>     </region>
>    <!-- note country 'GH' missing; note also that countries 
> that make up a region
>         are not contained, but follow -->
>     <country>GM</country>
>     <country>KE</country>
>     <country>LS</country>
>     <country>MW</country>
>     <country>MZ</country>
>     <country>SD</country>
>     <country>SL</country>
>     <country>SZ</country>
>     <country>TZ</country>
>     <country>UG</country>
>     <country>ZM</country>
>     <country>ZW</country>
>    </regional>
> 
> <!-- lookup table -->
> <LU:orglist>
> 	<LU:organization name="AP">
> 		<LU:state name="GH"/>
> 		<LU:state name="GM"/>
> 		<LU:state name="KE"/>
> 		<LU:state name="LS"/>
> 		<LU:state name="MW"/>
> 		<LU:state name="MZ"/>
> 		<LU:state name="SD"/>
> 		<LU:state name="SL"/>
> 		<LU:state name="SZ"/>
> 		<LU:state name="TZ"/>
> 		<LU:state name="UG"/>
> 		<LU:state name="ZM"/>
> 		<LU:state name="ZW"/>
> 	</LU:organization>
> </LU:orglist>
> 
> <!-- desired output -->
> Organization: AP: GM KE LS MW MZ SD SL SZ TZ UG ZM ZW (except GH)
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


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


Current Thread