This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Error message when match=$variable
- To: xsl-list at lists dot mulberrytech dot com
- Subject: RE: [xsl] Error message when match=$variable
- From: Jarno dot Elovirta at nokia dot com
- Date: Tue, 4 Sep 2001 06:23:14 +0300
- Reply-To: xsl-list at lists dot mulberrytech dot com
> When I run the following stylesheet with
> <xsl:template match="$english/node()">,
> which should display all the nodes of the english.xml, I get an error
A variableReference cannot be used in a Pattern
> XSL:
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:variable name="english"
> select="document(languages/english.xml)/language"></xsl:variable>
You're not looking for the document URL from the english.xml child of
language child, but rather from a relative URL languages/english.xml, so the
expression inside document() should be in quotes
> <xsl:variable name="german"
> select="document(languages/german.xml)/language"></xsl:variable>
Same here
> <xsl:template match="/">
> <html>
> <head>
> </head>
> <body>
> <textarea rows="20" cols="100">
> <xsl:apply-templates select="$english/node()" />
You don't want to process the whitespace, so use $english/*
> </textarea>
> </body>
> </html>
> </xsl:template>
>
> <xsl:template match="$english/node()">
Just node() or * will do
> <xsl:value-of select="name()" /> = <xsl:value-of select="." />
The as such will be removed by the XSLT engine during whitespace
stripping, so wrap it into xsl:text
> </xsl:template>
>
> </xsl:stylesheet>
Jarno
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list