Subject: RE: [xsl] saxon:evaluate from external to current source From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 8 May 2007 21:36:36 +0100 |
I'm guessing, but I imagine that the feedback element is the outermost element of the source.xml document and this is the principal input document of your stylesheet. If I've guessed correctly, then you want a global variable <xsl:variable name="root" select="/"> and you then want to do: <xsl:for-each select="$formfields/field"> <xsl:variable name="currpath" as="xs:string" select="@srcPath"/> <xsl:apply-templates select="$root/saxon:evaluate($currpath)"/> </xsl:for-each> Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Matt Stoeffler [mailto:mstoef@xxxxxxxxx] > Sent: 08 May 2007 20:37 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] saxon:evaluate from external to current source > > There was a posting in April--see http://www.biglist.com/lists/xsl- > list/archives/200704/threads.html#0022-- in which a question > was posed about establishing proper context for > saxon:evaluate for an > external document. I have a problem that inverts that one somewhat. > I'm working on xsl that uses a reference xml file to direct > the order in which to process a source document. So, when > processing source.xml, I reference an external map.xml, which > looks like this ... > > <field-map form="Secondary School Participation"> <field > srcPath="feedback/nameInfo/title" > resId="courtesyTitle">Courtesy Title</field> <field > srcPath="feedback/nameInfo/name" > resId="nameHead">Name</field> <field > srcPath="feedback/nameInfo/email" resId="emailHead">Email</field> > > ... > </field-map> > > The reference map.xml tells me what source nodes to process > in what order. My problem arises when I change context in > the xsl file ... > > where $formfields gets me the nodeset from the external > document I want, depending on the form I want to process. > > <xsl:for-each select="$formfields/field"> > <xsl:variable name="currpath" as="xs:string" select="@srcPath"/> > <xsl:apply-templates select="/saxon:evaluate($currpath)"/> > </xsl:for-each> > > > ... problem is, the saxon:evaluate fails because, I suspect, > I'm in the wrong document context. How can I tell my > apply-templates instruction to evaluate the path in the > source document? > > thanks. > > Matt.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] saxon:evaluate from external , Matt Stoeffler | Thread | [xsl] Output flat file results 2 no, Chris |
[xsl] saxon:evaluate from external , Matt Stoeffler | Date | RE: [xsl] counting and grouping iss, Bjorndahl, Brad |
Month |