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
|