Adrian Herscu schrieb am 22.06.2010 um 14:46 (+0300):

>     <!-- create a copy of interesting things -->
>     <xsl:variable name="sections">
>       <xsl:for-each select="descendant::section">
>         <xsl:copy>
>           <xsl:copy-of select="@* />
>         </xsl:copy>
>       </xsl:for-each>
>     </xsl:variable>

Given your input document, you could simplify this to:

  <!-- create a copy of interesting things -->
  <xsl:variable name="sections">
    <xsl:copy-of select="descendant::section"/>
  </xsl:variable>

>     <document-report>
>       <xsl:for-each 
> select="xalan:nodeset($sections)/section[utils:dummy(true())][1]">
>         <!-- NOTE: the ancestors are no longer available -->
>         <section-report ref="{...@ref}" />
>       </xsl:for-each>
>     </document-report>
>   </xsl:template>
> 
> Any explanation?

No other than a wild guess that one XPath expression is optimized,
and another isn't.

-- 
Michael Ludwig

Reply via email to