Re: [xsl] distinguish whether variable holds string or node set

Subject: Re: [xsl] distinguish whether variable holds string or node set
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 14 Jun 2010 09:24:20 +0100
On 13/06/2010 23:03, TW wrote:
I'm not sure what you consider "safe"?

I mean, its safe to use the parameter in an xpath without having to test its type.

The most common reason for getting types wrong is a parameter that is logically always a node set but optional, people declare it as

<xsl:param name="foo"/>

but then if it is not passed in to a particular call then it defaults to an empty string so an xpath such as $foo/a/b fails with an error.

If you declare the default as

<xsl:param name="foo" select="/.."/>

This problem goes away.

If you are needing to test the types for some other reason, rather than ask how to test the types, you should ask yourself why your template is being called with the parameter set to different types. The set of types may be (unless they depend on a global stylesheet parameter) determined in advance by inspecting the stylesheet and it is always possible to arrange that each parameter is always called with a parameter of the same type. (If necessary by adding extra parameters, one for each type used.)


________________________________________________________________________ The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. ________________________________________________________________________

Current Thread