Subject: 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
|