Ok, ich hab nochmal ein vereinfachtes Beispiel gemacht.
test1.xml:
-----------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="test1.xsl"?>
<data>
<test1>1</test1>
<test2>2</test2>
</data>
-----------------------------------------------------
test1.xsl:
-----------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8" indent="yes"/>
<xsl:variable name="path">data/test2</xsl:variable>
<xsl:template match="/">
<html>
<head>
<title>test1</title>
</head>
<body>
<xsl:value-of select="$path"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
-----------------------------------------------------
An der Stelle <xsl:value-of select="$path"/> sollte er "2" ausgeben. Aber er gibt "data/test2" aus.
Gibt es eine Möglichkeit, dass nicht den Inhalt der Variable $path ausgibt, sondern da reinschaut, und das ausgibt, was an der Stelle in der XML-Datei steht?