xsl-list
[Top] [All Lists]

Re: Defining a key for a string in another xml document

2003-11-28 08:56:45

"Ram" <sram_30(_at_)yahoo(_dot_)com> wrote in message
news:20031128132407(_dot_)64964(_dot_)qmail(_at_)web40909(_dot_)mail(_dot_)yahoo(_dot_)com(_dot_)(_dot_)(_dot_)
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



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