Subject: Re: [xsl] creating a temporary document from multiple inputs From: Wolfgang Laun <wolfgang.laun@xxxxxxxxx> Date: Sat, 23 Mar 2013 16:07:53 +0100 |
Reading the messages helps :-) <xsl:variable name="doc" as="element()*" select="document($paths)/*"/> Output OK. Thanks for improving my knowledge! (With a total of 200K characters in the 3 files there certainly wasn't a noticeable difference in execution speed.) -W On 23/03/2013, Wolfgang Laun <wolfgang.laun@xxxxxxxxx> wrote: > Hi David, > > I tried this, and the proposed <xsl:variable name="doc"> produces an error. > > <xsl:variable name="paths" as="item()*"> > <xsl:sequence select = "($p1,$p2,$p3)" /> > </xsl:variable> > <xsl:variable name="doc" as="document-node()*" > select="document($paths)/*"/> > > Warning: on line 34 > Required item type of value of variable $doc is document-node(); > supplied value has item > type element(). The expression can succeed only if the supplied > value is an empty sequence. > Warning: on line 34 of strip4ilp.xsl: > The only value that can pass type-checking is an empty sequence. > Required item type of > value of variable $doc is document-node(); supplied value has item > type element() > Warning: on line 34 of strip4ilp.xsl: > The only value that can pass type-checking is an empty sequence. > Required item type of > value of variable $doc is document-node(); supplied value has item > type element() > Error on line 34 of strip4ilp.xsl: > XTTE0570: Required item type of value of variable $doc is > document-node(); supplied value > has item type element({http://www.w3.org/2001/XMLSchema}schema, > xs:anyType) > > -W > > On 23/03/2013, David Carlisle <davidc@xxxxxxxxx> wrote: >> On 09/03/2013 16:02, Wolfgang Laun wrote: >>> 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)"/> >>> >> >> If you are only concatenating them for the key lookup that's an >> expensive way to do it (unless your processor internally manages to >> avoid copying all the nodes). >> >> Why not just look up along the sequence of documents? >> >> <xsl:variable name="docs" as="document-node()*" >> select="document($paths)/*"/> >> >> <xsl:variable name="look" select="$docs/key('kSkips',$name,.)"/> >> >> David
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] creating a temporary docu, David Carlisle | Thread | [xsl] XML and JSON browser performa, David Lee |
Re: [xsl] creating a temporary docu, David Carlisle | Date | [xsl] [Ann] XMLSpectrum - Update to, Philip Fearon |
Month |