|
Subject: Re: [xsl] Checking if a variable has a value From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 31 Aug 2022 08:10:56 -0000 |
A variable always has a value.
If a parameter is declared as `<xsl:param name="git-hash"/>`, with no `select`
or `as` attribute, then its default value (if you don't supply one) is a
zero-length string. There is no way of distinguishing this from the case where
the user supplied a zero-length string explicitly. If you need to distinguish,
then select a different default (using the `select` attribute).
You can test for a non-zero-length string using `test="$git-hash"`. Or if you
prefer, `test="$git-hash != ''"`.
> On 31 Aug 2022, at 02:27, Mark Giffin m1879@xxxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> XSLT 2.0, Saxon processor.
>
> What's a good way to check if a variable has a value? I want to print
something if a variable has a value, and not print it if it is not given a
value. This must be extremely simple but I don't see it.
>
> Variable is declared:
> <xsl:param name="git-hash"/>
>
> This will sometimes be given a string value like this:
> 26166cf7f809f5107778c2742e06edb024c5ffef
>
> I tried this and others:
> <xsl:if test="matches($git-hash, '\d|[a-z]')">
> <dc:subject>git hash: <xsl:value-of select="$git-hash"/></dc:subject>
> </xsl:if>
>
> When the variable has no value, the following is output instead of nothing:
> git hash: ${git-hash}
I can't see any way that would be output by any of your code samples.
>
> The following works but only if the value has numbers in it:
> <xsl:if test="matches($git-hash, '\d')">
>
> None of these work, what have I missed:
> <xsl:if test="$git-hash">
> <xsl:if test="boolean($git-hash)">
> <xsl:if test="matches($git-hash, '\d|\S')">
> <xsl:if test="matches($git-hash, '\d|[a-z]')">
>
> <xsl:choose>
> <xsl:when test="not($git-hash)"></xsl:when>
> <xsl:otherwise>
> <dc:subject>git hash: <xsl:value-of
select="$git-hash"/></dc:subject>
> </xsl:otherwise>
> </xsl:choose>
>
> Thanks,
> Mark
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/293509> (by
email <>)
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Checking if a variable ha, Graydon graydon@xxxx | Thread | Re: [xsl] Checking if a variable ha, Jean-Paul Rehr rehrj |
| Re: [xsl] Checking if a variable ha, Mark Giffin m1879@xx | Date | Re: [xsl] Checking if a variable ha, Jean-Paul Rehr rehrj |
| Month |