<xsl:variable name="taxfile">
<xsl:value-of select="@file"></xsl:value-of>
</xsl:variable>
That makes a result tree fragment, it's a lot less typing and more
efficient for the system to store the attribute directly:
<xsl:variable name="taxfile" select="@file"/>
Although you don't really need a variable at all here
concat($taxfile,'')
just coerces the result tree fragment to a tring and then appends ''
which is a no-op.
You can just do
<xsl:apply-templates select="document(@file)//family"/>
or
<xsl:apply-templates select="document(string(@file))//family"/>
depending on whether you want the relative URI to be based on the URI of
the stylesheet or your master doc.
<xsl:sort data-type="text" select="/name"/>
/name will evaluate to the same thing (probably the empty string unless
your documents have a top level element called name) so you are sorting
with a constant key, so nothing gets sorted.
You want a relative path so different items get a different sort key.
You didn't show your input, but if name is a child of family you want
<xsl:sort data-type="text"
select="name"/>
David
--
http://www.dcarlisle.demon.co.uk/matthew
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list