Hola a todos.

Estoy creando unas páginas web en html y tengo un problema al
crear un atributo con caracteres no válidos.

Es decir. si tengo en mi xml:

<ulink url="http://www.es/fich.php?a=1&b=2";>a</ulink>

y en mi xsl
<xsl:template match="ulink">
  <xsl:element name="a">
    <xsl:attribute name="href">
      <xsl:value-of select="./@url"/>
    </xsl:attribute>
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>

no me deja. He probado a poner:
<ulink>
 <url><![CDATA[ http://www.es/fich.php?a=1&b=2 ]]></url>
 <texto>a</texto>
</ulink>

con

<xsl:template match="ulink">
  <xsl:element name="a">
    <xsl:attribute name="href">
      <xsl:value-of select="url"/>
    </xsl:attribute>
    <xsl:apply-templates match="texto"/>
  </xsl:element>
</xsl:template>

y también me lo traduce, y si en lugar de <xsl:value-of select="url"/>
pongo  <xsl:value-of select="url" disable-output-escaping="yes" />
me dice que no puedo utilizar el disable-output-escaping cuando
no estoy escribiendo texto (vamos que en un atributo no se
puede).


¿Como se podría arreglar?

Ya para rizar el rizo me gustaría poner comandos en los
atributos. Vamos, algo parecido a:

<ulink url="<a>texto</a>">a</ulink>

y que el xsl me ponga en href la respuesta del apply-templates
del a.


Muchas gracias.

Saludos.
--
------------------------------------------------------------
Alfonso Cepeda Caballos       Escuela Superior de Ingenieros
[EMAIL PROTECTED]           Departamento de Ingeniería de
                                       Sistemas y Automática

Responder a