Altova Mailing List Archives>Archive Index >comp.text.xml Archive Home >Recent entries >Thread Prev - is this stylesheet valid? >Thread Next - Re: is this stylesheet valid? Re: is this stylesheet valid?To: NULL Date: 6/1/2007 10:01:00 PM Andy Fish wrote: > hi, > > i'm porting some xsl code from .net 1.1 to 2.0 and I have come across a > transform which works in .net 1.1 and works in mxsml but does not work in > .net 2.0. the stylesheet is this: > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:template match="foo"> > <xsl:param name="param1"/> > <xsl:value-of select="$param1/*"/> > <xsl:apply-templates/> > </xsl:template> > </xsl:stylesheet> > > and the input file is simply > > <foo /> > > so $param1 has no value (empty string? empty node set? I'm not sure) > > with .net 2.0 I get an error message Unhandled Exception: > System.Xml.XPath.XPathException: Expression must evaluate to a node-set. I'm > guessing this is because the default parameter value is an empty string. > > in the real stylesheet, the parameter (if it is passed in) will be a node > set. so to make sure I don't evaluate an illegal expression, I need to be > able to tell whether the parameter value is an empty string (i.e. default) > or a node set. how can I achieve this? > > Andy > > rather than have it default to an empty string, and then having to test for that to avoid using the variable in path expressions, it's usually simpler just to make it default to an empty node set, add <xsl:param name="param1" select="/.."/> David -- http://dpcarlisle.blogspot.com | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
