Re: [xsl] XPath Error

Subject: Re: [xsl] XPath Error
From: Geert Josten <Geert.Josten@xxxxxxxxxxx>
Date: Sun, 31 Oct 2004 12:37:11 +0100
Hi,

<xsl:variable name="myInfo">
        <xsl:copy-of select="/page/myinfo" />
</xsl:variable>

If possible prefer the following:


<xsl:variable name="myInfo" select="/page/myinfo" />

That way the myInfo variable contains a node set and not a document fragment. The upper version will give an error when evaluating $myInfo/myinfo/@id. This is a limitation of XSLT 1. In XSLT 2 the document fragment data type does not exist.

If it is not possible to use the select attribute on xsl:variable (perhaps because you want to call a separate template that gives a node set), you could resort to the node-set function, which is supported by most implementations of XSLT 1.

You could then use something like:

<xsl:variable name="id" select="exsl:node-set($myInfo)/myinfo/@id" />

(Note: see exslt.org for explanation on the extension functions, their use and availability in implementations)

Grtz,
Geert

--
Geert.Josten@xxxxxxxxxxx
IT-consultant at Daidalos BV, Zoetermeer (NL)

http://www.daidalos.nl/
tel:+31-(0)79-3316961
fax:+31-(0)79-3316464

GPG: 1024D/12DEBB50

Current Thread