|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: error testing id() in external document
In XSLT 1.0 you can't use a function call on the rhs of "/". You need to use xsl:for-each to set the context node for id(): <xsl:for-each select="document(..)"> <xsl:if test="id($jid) = 'footnote'>... Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Trevor Nicholls [mailto:trevor@xxxxxxxxxxxxxxxxxx] > Sent: 19 October 2007 17:56 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: error testing id() in external document > > > Using xsltproc (libxml), and thus inside an <xsl:stylesheet > version="1.0">, the following template generates an error: > > <xsl:template match="jump[@srcfile]"> > <xsl:variable name="jfil" > select="substring-before(@srcfile,'#')" /> > <xsl:variable name="jid" select="substring-after(@srcfile,'#')" /> > <!-- footnotes are an invalid external reference --> > <xsl:if test="local-name(document($jfil,/)/id($jid)) = 'footnote'"> > <xsl:message terminate="yes"> > <xsl:text>Footnote reference to external document (</xsl:text> > <xsl:value-of select="@srcfile" /> > <xsl:text> found in </xsl:text> > <xsl:value-of select="$myfullself" /> > </xsl:message> > </xsl:if> > </xsl:template> > > The error is: > > XPath error : Invalid expression > xsl:if : could not compile test expression 'local-name(.. etc. > > Is that really an invalid expression? Is there a valid > expression that will achieve the same thing? > > Thanks > Trevor
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






