Re: [xsl] xsl document function not returning desired node list

Subject: Re: [xsl] xsl document function not returning desired node list
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Thu, 21 Jan 2010 12:00:36 +0100
Christian C. Schouten wrote:

  <xsl:value-of select="document(concat($processfilename,
'.svg'))//rect[@bpmn:activity-label=$linklabel]/@x" />

SVG uses the namespace http://www.w3.org/2000/svg (if I remember that correctly) so doing
//rect
which selects elements with local name 'rect' in no namespace does not select any SVG 'rect' elements.


With XSLT 1.0 you need to bind a prefix to the namespace URI and use that prefix to qualify element names e.g.

  <xsl:value-of
    xmlns:svg="http://www.w3.org/2000/svg";
    value-of select="document(...)//svg:rect[...]/@x"/>

Usually you would however move that namespace declaration to the xsl:stylesheet element and not put it on the xsl:value element.

--

	Martin Honnen
	http://msmvps.com/blogs/martin_honnen/

Current Thread