Re: [xsl] Usage of Asterisk in XPath expressions

Subject: Re: [xsl] Usage of Asterisk in XPath expressions
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 22 Mar 2019 13:33:01 -0000
On 22.03.2019 13:43, Martin Honnen martin.honnen@xxxxxx wrote:
On 22.03.2019 12:01, Philipp Nanz philipp.nanz@xxxxxxxxx wrote:

Suppose this data:

<foo:bar xmlns:foo="http://test/ns/foo"; a="b">Yadda</foo:bar>

Then suppose this stylesheet:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
B B B B  xmlns:foo="http://test/ns/foo";
B B B B  version="2.0">

B B B B  <xsl:template match="foo:bar">
B B B B B B B B  <xsl:if test="ancestor-or-self::foo*[@a]">

This is B ancestor-or-self::foo * [@a] that is ancestor-or-self::foo multiplied with the array [@a], i.e. the array constructed with the attribute "a", I think.

Not sure what the multiplication with an array should result into, need
to scan the XPath 3.1 spec in some detail.


The multiplication operator atomizes its operand and atomization of an
array gives a sequence of each item in the array atomized.

However, the other main reason that doesn't raise an error is that
ancestor-or-self::foo evaluates to the empty sequence in the context of
that document and that way the multiplication also evaluates to the
empty sequence.

Current Thread