Alan Hale wrote:
<snip />
<xsl:variable name="link" select="file_link"> </xsl:variable>
<snip />
As you can see, I am trying to construct an html link from the filename
and path held in the <file_link> element.
This works fine when I call the stylesheet in-line or from Javascript in
Internet Explorer, but when I run it with the PHP XSL extension, it
generates a warning: Xsl:variable content should be empty since select
is present. It's only a warning and the output is still as expected, but
clearly I'm doing something wrong.
>From reading up it seems to me this IS an xslt issue rather than a PHP
one. I just don't understand it.
You read up well. The warning is wrong. However, there's a little truth
in it ;)
You can use an xsl:variable with either a select or with more complex
content:
<!-- with select -->
<xsl:variable name="x" select="file_link" />
<!-- with sequence constructor -->
<xsl:variable name="x"><xsl:value-of select="file_link" /></xsl:variable>
<!-- or more complex, like this: -->
<xsl:variable name="x">
<xsl:for-each select="bla">
<xsl:call-template name="xyz" />
<xsl:apply-templates select="." />
</xsl:for-each>
</xsl:variable>
<!-- or with text, like this (discouraged, use select to prevent
document node to be created) -->
<xsl:variable name="x">Some text here</xsl:variable>
etc.
But you can't mix the two methods. You PHP XSL extension is a bit too
strict. In XSLT, the following:
<xsl:variable name="x" select="file_link" > </xsl:variable>
should be regarded equal to:
<xsl:variable name="x" select="file_link" />
That is a lot of text for helping you to understand the issue at hand.
To help PHP XSL a bit, you can remove the whitespace, or just make it an
empty tag altogether (like above). Apparently the whitespace is regarded
as a value, but PHP XSL shouldn't, really.
HTH,
-- Abel Braaksma
http://www.nuntia.nl
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--