xsl-list
[Top] [All Lists]

Re: Keys off of variable xml source

2005-04-01 10:08:39
Karl,

At 11:24 AM 4/1/2005, you wrote:
The reason for a lookup xml source is to act as a cross-reference to
data in the main xml source.  So, I need to reference all elements
who's ID = 123 but my match is expressed as a code value "abc".  The
code "abc" maps to 123 in my lookup.
So, I'm still scratching my head wondering how I might effectively put
the external file to use with keys, but thinking it won't work, the
context would strictly be of the main xml source.

source:
<match code="abc"/>

lookup:
<code lookup="abc" value="123"/>

in the stylesheet:

<xsl:variable name="lookup" select="document('lookup.xml')"/>

<xsl:variable name="codes" match="*" use="@lookup"/>

<xsl:template match="match">
  <xsl:variable name="lookup-code" select="@code"/>
  <xsl:variable name="target-id">
    <xsl:for-each select="$lookup"/>
      <xsl:value-of select="key('codes',$lookup-code)/@value"/>
    </xsl:for-each>
  </xsl:variable>
  ... now the value '123' is available bound to $target-id
      (as an RTF, convertible to a string) ...
</xsl:template>

I hope that helps. It's a bit cumbersome in XSLT 1.0, but works well enough.

Cheers,
Wendell


======================================================================
Wendell Piez                            
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>