This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: More efficient way than following-sibling?


Hello Michael!

> I am trying to find a more efficient way to determine if a node has
> siblings, and then access the next sibling.
> 
> Currently, I am running the following XSLT code:
> 
> <xsl:if test="$TheNode/following-sibling::node()">
>  <xsl:call-template name="GenericTemplate">
>   <xsl:with-param name="TheNode" 
> select="$TheNode/following-sibling::*[1]"/>
>  </xsl:call-template>
> </xsl:if>
> 
> However, this is very expensive, when it comes to large XML documents.
> 
> Does anyone know a more efficient way to do this?

The most efficient way I believe is to eliminate preliminary testing at all:

<xsl:apply-templates select="$TheNode/following-sibling::*[1]" mode="foo"/>

<xsl:template match="node() | @*" mode="foo">
	<xsl:call-template name="GenericTemplate">
		<xsl:with-param name="TheNode" select="."/>
	</xsl:call-template>
</xsl:template>

---
Oleg Tkachenko,
Multiconn International, Israel 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]