xsl-list
[Top] [All Lists]

Re: [xsl] xsl:if test = empty string, returns true

2012-05-15 12:26:54
At 2012-05-15 16:02 +0200, Jorge wrote:
Thank you all so much for all the rather granular explanations.

One thing I tried unsuccessfully is finding a way to unequivocally see what was coming out of the function, and what xsl:if was testing. Up until know I have only played with XSLT using a general-purpose text editor and running Saxon a zillion times.

When I started guessing that I was not quite understanding what exactly the function was returning, I tried to find a visual debugger that could describe it to me. I tried Oxygen Developer's demo, but could not find a way to do that (i.e. showing me what exactly xsl:if was testing).

With a slight change to your code, you can use oXygen to tell you. And had I used that, I would have caught my egregious error that, thankfully, Michael was kind enough to point out.

Any heads up on how or with what tool I could have noticed I was getting a node and not a string (besides learning XSLT properly)? I use Mac OS X 10.7 so I am limited by what works on this platform.

I modified your code as follows:

        <xsl:template match="/" name="main" exclude-result-prefixes="me">
          <xsl:variable name="x" select="me:metadata('testkey')"/>
                <xsl:choose>
                        <xsl:when test="$x">
testkey = "<xsl:value-of select="me:metadata('testkey')"/>"
testkey's length = <xsl:value-of select="string-length(me:metadata('testkey'))"/>
                        </xsl:when>
                        <xsl:otherwise>
                                "testkey" is empty or does not exist.
                        </xsl:otherwise>
                </xsl:choose>
        </xsl:template>

And then using the debugger, when I walk through to the <xsl:choose>, the oXygen Variables window shows that $x contains a text node. When I add my suggested as constraint to the function, the Variables window shows that $x contains a string.

I hope this helps.  And thanks, again, as always, to Michael.

. . . . . . . . . . Ken

--
Public XSLT, XSL-FO, UBL and code list classes in Europe -- Oct 2012
Contact us for world-wide XML consulting and instructor-led training
Free 5-hour lecture: http://www.CraneSoftwrights.com/links/udemy.htm
Crane Softwrights Ltd.            http://www.CraneSoftwrights.com/s/
G. Ken Holman                   mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Google+ profile: https://plus.google.com/116832879756988317389/about
Legal business disclaimers:    http://www.CraneSoftwrights.com/legal


--~------------------------------------------------------------------
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>
--~--