RE:Dar valor a una variable
Para utilizar la variable del JavaScript puedes setear con la ´propiedad addParameter del XMLDOM como se puede ver en el código de la función outputgroup.
En tu archivo XSL puedes hacer la llamada a esta función mediante
<xsl:attribute name="href">
<xsl:value-of select="concat('javascript:outputgroup("',@id,'");')"/>
</xsl:attribute>
Y también deberás tener declarado el parámetro
<xsl:param name="subj"/>
y utilizas éste parámetro en cualquiera condición como:
<xsl:if test="@id[.=$subj]">
.. hacer algo ..
</xsl:if>
function outputgroup(subject){
var xslt = new ActiveXObject("Msxml2.XSLTemplate");
var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
var xslProc;
xslDoc.async = false;
xslDoc.resolveExternals = false;
xslDoc.load("archivo.xsl");
xslt.stylesheet = xslDoc;
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
xmlDoc.async = false;
xmlDoc.resolveExternals = false;
xmlDoc.load("archivo.xml");
xslProc = xslt.createProcessor();
xslProc.input = xmlDoc;
xslProc.addParameter("subj", subject);
xslProc.transform();
document.write(xslProc.output);
}
Saludos