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: "Michael Kay michaelkay90@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 30 Mar 2024 18:44:10 -0000
I would choose between string($leaf-elmt) and data($leaf-elmt). If your
document is untyped (not schema-validated) then they are almost equivalent:
the difference is that string() returns a string whereas data() returns
untypedAtomic, which allows it to participate for example in arithmetic
operations.

text() best avoided, it means your code won't work properly if someone
presents you with XML containing comments.

Michael Kay
Saxonica

> On 29 Mar 2024, at 12:03, Roger L Costello costello@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> 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.
>
> /Roger

Current Thread