This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Reverse lookup table
- From: "Michael Kay" <michael dot h dot kay at ntlworld dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Wed, 10 Jul 2002 09:07:19 +0100
- Subject: RE: [xsl] Reverse lookup table
- Reply-to: xsl-list at lists dot mulberrytech dot com
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@ntlworld.com
work: Michael.Kay@softwareag.com
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com] On Behalf Of
> Dunning, John
> Sent: 09 July 2002 20:31
> To: xsl-list@lists.mulberrytech.com
> 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