Subject: RE: [xsl] Concatenating multiple input documents into a single node-set From: "Michael Kay" <mhk@xxxxxxxxx> Date: Wed, 12 May 2004 16:51:00 +0100 |
> I want to concatenate all of the nodes in a RELAX-NG schema (which is > comprised of multiple included files) into a single node-set. > I've tried > something like this: > > <xsl:variable name="collection"> > <xsl:for-each select="//rng:include"> > <xsl:copy-of select="document(@href)" /> > </xsl:for-each> > </xsl:variable> > > but I only get one node in the resulting variable. The above should work. It should give you a result tree fragment. When you convert this to a node-set using the xx:node-set() extension (or implicitly, in XSLT 2.0), the value of the variable is a document node whose children should include all the document elements of the selected documents. So the value of the variable is indeed one node. What are you actually doing with this data? I suspect you don't need to copy the nodes at all, only to select them. In fact you don't need the for-each, because the document() function can process multiple URIs in a single call. I suspect that all you need is: <xsl:variable name="collection" select="document(//rng:include/@href)"/> Michael Kay
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Concatenating multiple in, David Carlisle | Thread | [xsl] XSLTC, vsubramanian |
Re: [xsl] Concatenating multiple in, David Carlisle | Date | RE: [xsl] order-by in WD-xsl?, Wendell Piez |
Month |