[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] creating a temporary document from multiple inputs


Subject: Re: [xsl] creating a temporary document from multiple inputs
From: Graydon <graydon@xxxxxxxxx>
Date: Sat, 9 Mar 2013 11:23:06 -0500

On Sat, Mar 09, 2013 at 05:02:19PM +0100, Wolfgang Laun scripsit:
> XSLT 2.0.
> 
> I had to create a single document from several inputs (so that a key
> lookup could access them all with a single call):
> 
> <xsl:variable name="doc" as="document-node()">
>  <xsl:document>
>    <xsl:sequence select="document($paths)/*"/>
>  </xsl:document>
> </xsl:variable>
>  <xsl:key name="kSkips"
>          match="element()[@omc:ilp='0']"
>          use="@name"/>
> 
>  <xsl:variable name="look" select="key('kSkips',$name,$doc)"/>
> 
> What surprised me was that I could use
>  <xsl:sequence select="document($paths)"/>
> without an error, which would make the document-nodes of the inputs
> children of the temporary document-node. Is the XSL processor clever

Betcha you can't.

Once you've gone

<xsl:sequence select="document($paths)/*"/>

It's not document nodes anymore.  Same as 

<xsl:for-each select="collection()/*">

doesn't give the document nodes and

<xsl:for-each select="collection()">

does.

-- Graydon


Current Thread
Keywords