2010-07-31 21 views
12

¿cómo implemento css en el archivo xsl? He intentado esto:css en el documento xsl

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<link rel="stylesheet" type="text/css" href="dxsl.css"/> 
<xsl:output method="html" /> 

pero tiró el error:

XSLTProcessor::importStylesheet(): Found a top-level element link with null namespace URI 

y

Warning: XSLTProcessor::transformToXml(): No stylesheet associated to this object 
+0

creo que esto no es una pregunta, sino una cuestión de XSLT HTML. Si ejecuta una transformación de XML a HTML, ¿dónde saca el elemento 'link'? –

Respuesta

0

'enlace' es un elemento HTML y que está tratando de usarlo como un XML uno. XSL modifica la entrada en otro documento. No usas CSS en un archivo XSL. Lo inserta en un archivo HTML (X) y lo aplica allí.

+0

gracias, pero lo tengo funcionando. tiene que ser justo después del elemento principal en el archivo xsl. 'http: // www.velocityreviews.com/forums/t166257-linking-to-a-separate-css-in-xsl.html' – input

+0

Sí, porque, una vez dentro del encabezado, se encuentra en el espacio de nombres HTML. – Rob

2

Si lo entiendo correctamente, ¿desea que la salida tenga una hoja de estilo en particular?

XSL es un lenguaje utilizado para transformar XML de un formato a otro (en cierto sentido, es como aplicar una hoja de estilo css). Lo que sucedería en un caso de uso típico es que tomarías algún archivo xml y usarías XSL para transformarlo, por ejemplo, en XHTML. En este resultado, puede incluir una hoja de estilo usando el elemento de enlace si lo desea, pero XSL no utiliza realmente CSS como tal. (Así que, básicamente, intente poner el CSS en el XSL como parte de la transformación para que la salida XHTML lo use.)

Si se trata de un documento XML, simplemente debe incluir la referencia al XSL y debe manejar el transformación para usted de forma automática.

+0

finalmente, entiendo ahora lo que está pasando ... buena respuesta (si tiene elementos html en el archivo .xsl, es necesario agregar el enlace css href bajo etiqueta como en HTML normal, porque como salida XHTML tendría línea para importe el archivo css como resultado) –

1

El enlace debe estar dentro de la plantilla 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" /> 

<xsl:template match="/*//*[1]"> 

    <link rel="stylesheet" type="text/css" href="dxsl.css"/> 

</xsl:template> 

</xsl:stylesheet> 
+0

esto no tiene sentido si está aplicando xsl para transformar xml a xml. – Dmitry

+2

Entonces, es bueno que la pregunta sea sobre la transformación de xml a html. –

-1

Como dice otra respuesta, el enlace debe ser generado por la transformación. Aquí hay un ejemplo que genera un pequeño documento HTML con un enlace a CSS desde un simple documento XML. El camino css también proviene de los datos.

Try this