2010-02-10 15 views
5

Tengo un poco de JavaScript que necesita aplicar un xslt al resultado de una solicitud de AJAX. El xslt se define en un archivo separado "transform.xslt": ¿cuál es la mejor manera de incluir el xslt en mi página?Incluir una hoja de estilo xslt en una página html

¿Es posible utilizar algún tipo de elemento <link..., o tendré que hacer una solicitud http por separado para el xslt?

+0

Estoy interesado (académicamente) en la respuesta a esta pregunta. Mi sospecha es que está fuera de su control directo: el servidor tiene que devolver el contenido primario con el tipo MIME correcto, y el documento XML necesita una referencia a la hoja de estilos xslt con un encabezado "". Con eso, pensaría que el navegador realizaría la transformación y que su documento obtendría el resultado. PERO eso es solo una suposición. – Pointy

Respuesta

2

Creo que necesita usar XMLHttpRequest para cargar la hoja de estilos del servidor, luego tiene el responseXML y puede usarlo con las API de transformación XSLT que los navegadores exponen a Javascript (por ejemplo, importStylesheet con Mozilla y transformNode con IE).

Salvo que se dirija a IE solo donde podría usar un XML data island con p. Ej.

<xml id="sheet1" src="sheet.xslt></xml> 

en la sección de la cabeza de su documento HTML. Entonces su script podría usar, p. someResponseXML.transformNode(sheet1.XMLDocument).

+0

¿Entonces no cree que el navegador implícitamente realizaría la transformación si el XML tuviera el encabezado correcto? Por supuesto, tiene razón en el caso de que el XML era simplemente XML sin referencia de hoja de estilo. – Pointy

+0

La pregunta original dice "aplicar un xslt al resultado de una solicitud de Ajax". Según entiendo, eso significa que el script ha recibido algún objeto responseXML y ahora quiere aplicar una hoja de estilo XSLT. Para hacer eso, primero debes cargar la hoja de estilos con el script. Por supuesto, si no carga el XML original con script y XMLHttpRequest, sino que lo carga en una ventana o marco, puede esperar que el navegador aplique cualquier hoja de estilo a la que se haga referencia en una instrucción de procesamiento xml-stylesheet. Pero eso solo sucede si el XML se carga en un marco/ventana, no si se ha cargado con XMLHttpRequest. –

Cuestiones relacionadas