xsl-list
[Top] [All Lists]

Re: When is a variable a nodeset and when isn't it?

2003-06-09 04:28:26
String and node-set are different datatypes in XPath -- a string cannot be
used where a node-set is expected.

Therefore:

      /x/y/'someString'/z

is illegal.

So is:

    /x/y/$someVariable/z

Try using:

   /x/y/*[name() = $someVariableContainingAString]/z



=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL




<Simon(_dot_)Fairey(_at_)ft(_dot_)com> wrote in message
news:OFBAC09D9D(_dot_)CCF6A5B2-ON80256D40(_dot_)0032DD8E-80256D40(_dot_)0033955D(_at_)ft(_dot_)com(_dot_)(_dot_)(_dot_)
Hi,

Had a look through the past posts and a few mentioned similar things but
I'm still a tad confused.

Given:
<xsl:template match="/all">
        <xsl:variable name="root" select="/all/data/town"/>
        <xsl:for-each
select="$root/climate|$root/transportation|$root/tourism">
                <xsl:variable name="section" select="name()"/>
                <xsl:if test="$root/$section/church">
                        Airports exist<br/>
                </xsl:if>

etc....

Now in the for-each it seems to evaluate $root as part of the x-path
expression and works however it doesn't seem to like it in the test. If I
print $root it gives me the contents of the nodeset rather than just the
string. Should I be creating the root variable in a different way so that
it is treated as a simple string?

Not sure I'm being very clear here (waiting on an proper XSL course atm!)
essentially XMLSpy barfs on the xsl:if. I'm thinking there is something
fundamental about how XSL works that I'm missing here as well!

Thanks

Si



****************************************************************************
******
This email may contain confidential material. If you were not an
intended recipient, please notify the sender and delete all copies.
We may monitor email to and from our network.


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list






 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>