superduda en un XSL urgente!! gracias!!!

belen
05 de Marzo del 2005
Hola.
Tengo una superduda, que a ver como me explico.
Tengo un menu que utiliza un xml, un dtd, un xsl y un javascript. Con toda esta estructura me funciona perfectamente tanto en explorer, netscape y firefox.
Es un menú en forma de arbol, como los del explorador de windows.
Me va todo bien salvo que no soy capaz de variar la imagen del +, cuando está cerrada la rama del menú, al - de cuando se despliega.

El trocito de xsl en el que está la imagen es:

<xsl:template match="branch">
<span class="trigger">
<xsl:attribute name="onClick">
showBranch('<xsl:value-of select="@id"/>');
</xsl:attribute>

<img src="../img/menu/closed.gif">
<xsl:attribute name="id">I
<xsl:value-of select="@id"/>
</xsl:attribute>
</img>

<xsl:value-of select="branchText"/>
<br/>
</span>

<span class="branch">
<xsl:attribute name="id">
<xsl:value-of select="@id"/>
</xsl:attribute>
<xsl:apply-templates/>
</span>
</xsl:template>

Sabeis como puedo referirme a la imagen desde el javascript???

La fución que tengo en javascript es:

function swapFolder(img){
objImg = document.getElementById(img);
alert("objImg : " + objImg);
if(objImg.src.indexOf('closed.gif')>-1)
objImg.src = openImg.src;
else
objImg.src = closedImg.src;
}

donde img='I'+branch

Por favor, echadme una mano!!!!!
gracias

iuav
05 de Marzo del 2005
Hola ,
Declaras tu archivo Java Script en el archivo XSL de la siguientes manera:
<xsl:template match="/">
<html>
<script language="JavaScript" src="tuscript.js"></script>
</xsl:template>

Y evalúa este código que hice en una página sobre enlazar una navegación.

<a>
<xsl:attribute name="onmouseover">
hiLite(<xsl:value-of select="concat('&#34;img',$Direccion,'&#34;')"/>,<xsl:value-of select="concat('&#34;img_',$Direccion,'On&#34;')"/>);
</xsl:attribute>
<xsl:attribute name="onmouseout">
hiLite(<xsl:value-of select="concat('&#34;img',$Direccion,'&#34;')"/>,<xsl:value-of select="concat('&#34;img_',$Direccion,'Off&#34;')"/>);
</xsl:attribute>
<xsl:attribute name="href">
<xsl:value-of select="concat('javascript:linkPase(&#34;',$strxmlFile,'&#34;);')"/>
</xsl:attribute>
<img>
<xsl:attribute name="name"><xsl:value-of select="concat('img',$Direccion)"/></xsl:attribute>
<xsl:attribute name="height">16</xsl:attribute>
<xsl:attribute name="width">16</xsl:attribute>
<xsl:attribute name="border">0</xsl:attribute>
<xsl:attribute name="alt">
<xsl:value-of select="concat('Ir a la página ',$Direccion)"/>
</xsl:attribute>
<xsl:attribute name="src"><xsl:value-of select="concat('images/',$Direccion,'Off.gif')"/></xsl:attribute>
</img>
</a>

Y mi archivo JavaScript tiene el siguiente código:

function hiLite(imgDocID, imgObjName)
{
document.images[imgDocID].src = eval(imgObjName + "src");
return true;
}
function linkPase(strFile){
setNameXml(strFile);
outputgroup('Todos');
}


No tuve tiempo para aplicar a tu código, espero lo entiendas.

Un Saludo

iuav