xsl-list
[Top] [All Lists]

Re: [xsl] ordered selection of child elements

2018-03-08 01:02:45
Am 08.03.2018 um 07:36 schrieb Dr. Patrik Stellmann patrik(_dot_)stellmann(_at_)gdv-dl(_dot_)de:

Hi,

a question more motivated by curiosity than by a real problem:

With

<xsl:sequence select=“a, b“/>

I will get first element a and second element b – no matter of the order within the input document.

But with

<xsl:sequence select=“root/(a, b)“/>

I will get the elements a and b in document order. So this behaves identical to

            <xsl:sequence select=“root/(a | b)“/>

Why?


As for the why, see https://www.w3.org/TR/xpath20/#id-path-expressions which says

Each operation|E1/E2|is evaluated as follows: Expression|E1|is evaluated, and if the result is not a (possibly empty) sequence of nodes, atype error <https://www.w3.org/TR/xpath20/#dt-type-error>is raised [err:XPTY0019 <https://www.w3.org/TR/xpath20/#ERRXPTY0019>]. Each node resulting from the evaluation of|E1|then serves in turn to provide an*inner focus*for an evaluation of|E2|, as described in*2.1.2 Dynamic Context* <https://www.w3.org/TR/xpath20/#eval_context>. The sequences resulting from all the evaluations of|E2|are combined as follows:

1.

   If every evaluation of|E2|returns a (possibly empty) sequence of
   nodes, these sequences are combined, and duplicate nodes are
   eliminated based on node identity.The resulting node sequence is
   returned indocument order
   <https://www.w3.org/TR/xpath20/#dt-document-order>.
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>