Re: [xsl] What is the most efficient XPath expression for retrieving the first child element?

Subject: Re: [xsl] What is the most efficient XPath expression for retrieving the first child element?
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 12 May 2019 12:11:21 -0000
Well, it depends on the implementation, of course.

For Saxon, child::*[1], though child::Total_Size[1] will only take a
nanosecond or two longer. Avoid child::TotalSize, because this will search all
the children (it doesn't know there is only one).

Michael Kay
Saxonica

> On 12 May 2019, at 12:43, Costello, Roger L. costello@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Hello XSLT experts!
>
> I want to retrieve the first child element. The children consist of a
<Total_Size> element followed by many <String> elements (perhaps thousands of
<String> elements).
>
> <COFF_String_Table>
>    <Total_Size>4443</Total_Size>
>    <String>.eh_frame</String>
>    <String>.debug_aranges</String>
>    <String>.debug_info</String>
>    ...
> </COFF_String_Table>
>
> Question: What is the most efficient XPath for selecting the first child
element (the <Total_Size> element)? Assume the context node is the
<COFF_String_Table> element. Which of these is the most efficient XPath
expression:
>
> (a) child::*[1]
> (b) child::Total_Size
> (c) something else (what?)
>
> /Roger

Current Thread