|
[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: Reverse lookup table
Subject: Re: Reverse lookup table
From: "J.Pietschmann" <j3322ptm@xxxxxxxx>
Date: Tue, 09 Jul 2002 22:24:12 +0200
|
Dunning, John wrote:
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:variable name="countries" select="regional/countries"
<xsl:variable name="organization" select="regional/region/country"/>
<xsl:variable name="org-state" select="$table/LU:organization[@name=$organization]"/>
<xsl:text>Organization: </xsl:text>
<xsl:value-of select="$organization">
<xsl:text>:</xsl:text>
<xsl:for-each select="$org-state[.=$countries]">
<xsl:text> </xsl:text>
<xsl:value-of select=".">
</xsl:for-each>
<xsl:for-each select="$org-state[not(.=$countries)]">
<xsl:text> (except </xsl:text>
<xsl:value-of select=".">
<xsl:text>)</xsl:text>
</xsl:for-each>
(beware, untested)
J.Pietschmann
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list

|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
| RSS 2.0 |
|
| Atom 0.3 |
|
|