[xsl] Re: Defining a key for a string in another xml document

Subject: [xsl] Re: Defining a key for a string in another xml document
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Fri, 28 Nov 2003 16:56:45 +0100
"Ram" <sram_30@xxxxxxxxx> wrote in message
news:20031128132407.64964.qmail@xxxxxxxxxxxxxxxxxxxxxxxxxx
> Hi,
>  I've to define a key to get the content of a tag from another xml file.
> I've defined a key to retrieve the content in the current xml document
> like this:
>
> <xsl:key name="CurrentGroupByIdentifier" match="group"
> use="identifier[1]"/>
>
>  But how to do this for another xml file?
>
>  Jarno suggested how to search a string in another xml file like:
>
> document($filename, /)/descendant::text()[contains(., $yourString)]

I guess this must be in the xsl-FAQ -- search for lookup.

You have to be sure that the current document is the one you want to search.
This can be done using the following code:

  <xsl:for-each select="document('whateverURI')">

   <!-- Use the key() function, e.g.: -->
   <xsl:copy-of select="key('CurrentGroupByIdentifier', 'xxx')"/>

  </xsl:for-each>

The purpose of the xsl:for-each above is only to make the necessary document
the current document. As it specifies a node-list of only one node (the root
node of the document), the body of this xsl:for-each instruction will be
applied only once, which is exactly what we want.



=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL





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


Current Thread