2010-08-12 62 views
11

decir, si hay un archivo llamado data.xml, y un archivo que es format.xsl (¿o es format.xml?), Que es transformar los datos XML y formatearlos también con CSS, ¿qué navegador puede mostrar? ¿Qué archivo debe ser abierto? (El .xsl o la .xml?)¿Qué navegador puede mostrar datos XML transformados por XSLT?

En realidad, vimos en otro ejemplo de que la primera línea del archivo XSLT es href="format.xsl", por lo que pensaron que el archivo XSLT es ya el .xsl? entonces ¿cómo es que está vinculando a otro archivo .xsl? ¿Cuántos archivos hay, 2 o 3?

Respuesta

11

Hay dos archivos, uno .xml que contiene datos y uno .xsl con el script XSLT para la transformación. A partir de agosto de 2010, todos los navegadores líderes admiten la transformación XSLT del lado del cliente. Abra el archivo .xml y se usará el archivo .xsl asociado. Por lo general, el script crea un documento html que se muestra sobre la marcha. La transformación también puede realizarse por el servidor con PHP etc.
Para asociar un script XSLT, el archivo .xml necesita una línea como esta:

<?xml-stylesheet type="text/xsl" href="script.xsl" ?> 
8

Muchos navegadores son compatibles con las instrucciones de procesamiento de hojas de estilo XML. Si está incluido en un archivo XML y abre este XML con su navegador, el navegador cargará el XSLT especificado, lo ejecutará con el archivo XML como entrada y mostrará el resultado del XSLT en lugar del documento XML original. La especificación se puede encontrar aquí: http://www.w3.org/TR/xml-stylesheet/

Wikipedia's XSLT entry tiene un ejemplo de cómo utilizar las instrucciones de procesamiento. Básicamente sólo tiene que añadir esta línea en la parte superior de su archivo XML (XML después de la> prólogo <??), Con 'example2.xsl' ser un camino a su archivo XSLT:

<?xml-stylesheet href="example2.xsl" type="text/xsl" ?>

Firefox y IE debería soportar esto (y probablemente muchos otros navegadores, pero nunca lo intenté; esta función no se usa con tanta frecuencia).

+0

acaba de probar el Safari y Chrome actuales y ambos lo admiten, aunque Chrome no lo abrió si se trata de un archivo local. –

+1

Si el XSL está transformando el XML a XHTML, Chrome debería abrir/transformar un archivo local si el espacio de nombres XHTML se agrega al XSL. He tenido que hacer lo mismo con Firefox en archivos XML locales. Ver: http://stackoverflow.com/questions/2981524/how-can-i-make-xslt-work-in-chrome –

1

Firefox e Internet Explorer (sin duda la versión 6 en adelante, es probable versiones anteriores también) pueden analizar bien XML/XSL. En realidad, podría escribir un analizador del lado del cliente en Javascript, ambos navegadores funcionan bien con eso.

Es probable que desee asegurarse de que no utiliza ninguna pieza específica del proveedor, sin embargo, que puede romper la compatibilidad (como < msxsl: script >). Lo mismo podría aplicarse a otros analizadores (por ejemplo, la función node-set(), que no es la misma entre todos los analizadores MSXML).

Dentro de su archivo XSL, puede incluir otro archivo XSL. O más archivos XSL. De esta forma, puede volver a usar plantillas de un archivo XSL en otro.

1

en Mac, he intentado abrir el archivo XML con Chrome y Safari y no se muestra nada.

La solución que funcionó para mí es ejecutar xsltproc desde la línea de comandos para obtener primero un HTML y luego abrir el HTML con un navegador.Este es el comando:

xsltproc <XSL file> <XML file> > test.html 

Ahora abierta test.html con el navegador.