Re: [xsl] What is the best way to get the value of a leaf element and store it into a variable?

Subject: Re: [xsl] What is the best way to get the value of a leaf element and store it into a variable?
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 29 Mar 2024 12:14:02 -0000
> Am 29.03.2024 um 13:03 schrieb Roger L Costello costello@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>:
>
> Hi Folks,
>
> I have a variable which holds a leaf element:
>
> 	$leaf-elmt
>
> I want to store the value of the leaf element into this variable:
>
> 	$leaf-elmt-value
>
> What is the best way to declare $leaf-elmt-value and assign it the value of
$leaf-elmt? Here are 3 ways of doing it:
>
> <xsl:variable name="leaf-elmt-value" select="$leaf-elmt" />
> <xsl:variable name="leaf-elmt-value" select="$leaf-elmt/text()"/>
> <xsl:variable name="leaf-elmt-value" select="data($leaf-elmt)" />
>
> Are there other ways?
>
> What is the best way?
>
> I have deliberately avoided defining what "best way" means. I am hoping that
you will tell me what it means.
>
>

The value would be the last one with the fn:data function. The first one binds
the element node to a second variable but you already have one for that, so I
donbt see what that would be good for.
Selecting the text node children is something XPath allows you to do but is
usually not considered the value of the element.

In the end of course someone might want the value as an xs:date or some
duration and unless you use schema-aware XSLT/XPath the data function will not
give you that, you might need to explicitly use a constructor function.

Current Thread