Foros del Web » Creando para Internet » HTML »

[SOLUCIONADO] XSL value-of="."

Estas en el tema de XSL value-of="." en el foro de HTML en Foros del Web. No sé si esto debería ir aquí, pero me pareció el sitio más adecuado. Estoy siguiendo el tutorial sobre xsl de esta página http://www.cafeconleche.org/books/bi...ters/ch17.html El ...
  #1 (permalink)  
Antiguo 29/01/2013, 03:53
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
XSL value-of="."

No sé si esto debería ir aquí, pero me pareció el sitio más adecuado.

Estoy siguiendo el tutorial sobre xsl de esta página

http://www.cafeconleche.org/books/bi...ters/ch17.html

El caso es que según dice, al usar el *, el templete debería aplicarse a todos los elementos.

Cita:
<xsl:template match="*">
<P>
<xsl:value-of select="."/>
</P>
</xsl:template>
Esto es cierto, pero sólo se aplica a algunos.

Cita:
<ATOM STATE="GAS">
<NAME>Hydrogen</NAME>
<SYMBOL>H</SYMBOL>
<ATOMIC_NUMBER>1</ATOMIC_NUMBER>
</ATOM>
En este caso, el <p> sólo se le añade a <ATOM>, no a los interiores, obteniendo como resultado

Cita:
Hydrogen H 1
Sin embargo, en el tutorial dice

Cita:
In this case that means that ATOM elements will use the template with match="ATOM" instead of a template that merely has match="*". However, NAME, BOILING_POINT, ATOMIC_NUMBER and other elements that don’t match a more specific template will cause the match="*" template to activate.
Si asigno un template a ATOM, lo coge por ser el más específico, pero sus elementos inetrnos deberían usar el template de *. Pero no es cierto., es el mismo comportamiento de antes.

Estoy viendo los resultados en Chrome y explroer, con el mismo resultado.

¿Está equivocado el tutorial o estoy yo equivocado?
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #2 (permalink)  
Antiguo 29/01/2013, 05:13
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: XSL value-of="."

Ahora me funciona, creo que el problema era este

Cita:
<xsl:template match="/*">
<html>
<xsl:apply-templates/>
</html>
</xsl:template>
<xsl:template match="*">
<p>
<xsl:value-of select="."/>
</p>
</xsl:template>
Al no poner un template en ATOM con <xsl:apply-templates/>, tomamaba todo el contenido como texto (value-of) por lo que no podía aplicar el template a los elementos contenidos.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Etiquetas: página, xsl
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:56.