web-dev-qa-db-fra.com

Quel navigateur peut afficher les données XML transformées par XSLT?

par exemple, s'il existe un fichier appelé data.xml et un fichier format.xsl (ou est-ce format.xml?), qui consiste à transformer les données XML et à les formater également à l'aide de CSS, quel navigateur peut les afficher? Quel fichier doit être ouvert? (le .xsl ou le .xml?)

En fait, j'ai vu dans un autre exemple que la première ligne du fichier XSLT est à href="format.xsl". Je pensais donc que le fichier XSLT était déjà le .xsl? alors pourquoi se lie-t-il à un autre fichier .xsl? Combien y a-t-il de fichiers, 2 ou 3?

17

Il existe deux fichiers, un fichier .xml contenant des données et un fichier .xsl avec le script XSLT de transformation. Depuis août 2010, tous les principaux navigateurs prennent en charge la transformation XSLT côté client. Ouvrez le fichier .xml et le fichier .xsl associé sera utilisé. Généralement, le script crée un document HTML qui s’affiche à la volée. La transformation peut également être effectuée par le serveur avec PHP etc.
Pour associer un script XSLT, le fichier .xml nécessite une ligne comme celle-ci: 

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

De nombreux navigateurs prennent en charge l'instruction de traitement XML-stylesheet. S'il est inclus dans un fichier XML et que vous ouvrez ce fichier XML avec votre navigateur, celui-ci chargera le XSLT spécifié, l'exécutera avec le fichier XML en tant qu'entrée et affichera la sortie du XSLT au lieu du document XML d'origine. La spécification peut être trouvée ici: http://www.w3.org/TR/xml-stylesheet/

L'entrée XSLT de Wikipedia contient un exemple d'utilisation de l'instruction de traitement. En gros, vous devez simplement ajouter cette ligne en haut de votre fichier XML (après le prologue <? Xml?>), Avec 'exemple2.xsl' comme chemin d'accès à votre fichier XSLT:

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

Firefox et IE devraient tous les deux prendre en charge cette fonctionnalité (et probablement de nombreux autres navigateurs, mais je n’ai jamais essayé - cette fonctionnalité n’est pas utilisée aussi souvent).

9
Tim Jansen

Sur mac, j'ai essayé d'ouvrir le fichier XML avec Chrome et Safari sans rien afficher. 

La solution qui a fonctionné pour moi est d’exécuter la ligne de commande xsltproc from pour obtenir d’abord un code HTML, puis l’ouvrir avec un navigateur. Voici la commande:

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

Maintenant, ouvrez test.html avec le navigateur.

1
arun

Firefox et Internet Explorer (certainement à partir de la version 6 et probablement des versions antérieures) peuvent bien analyser XML/XSL. Vous pourriez en fait écrire un analyseur côté client en Javascript, ces deux navigateurs fonctionnent bien avec ça.

Vous voudrez probablement vous assurer que vous n'utilisez pas d'éléments spécifiques à un fournisseur, cependant, susceptibles de briser la compatibilité (tels que <msxsl: script>). La même chose pourrait s’appliquer à d’autres analyseurs syntaxiques (par exemple, la fonction node-set (), qui n’est pas identique entre tous les analyseurs syntaxiques MSXML).

Dans votre fichier XSL, vous pouvez inclure un autre fichier XSL. Ou plus de fichiers XSL. De cette façon, vous pouvez réutiliser des modèles d’un fichier XSL dans un autre.

1
Rob

Je crois que le support est partiel dans tous les navigateurs. 

Voici quelques graphiques: http://greenbytes.de/tech/tc/xslt/

0
jakefreeberg