> Tech > Transformer XML en HTML

Transformer XML en HTML

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Vous pouvez utiliser XSLT pour transformer un document XML en HTML de plusieurs manières. L'une d'elles consiste à  laisser le navigateur effectuer la transformation. Une autre, beaucoup plus fiable, consiste à  effectuer vous-même la traduction sur l'iSeries. Certes cela ajoute du travail sur votre iSeries mais élimine l'incertitude d'implémentations XSLT

fantaisistes.

Les trois principaux processeurs
XSLT sont MSXML de Microsoft, Saxon
de Michael Kay, et Xalan d’Apache
Software Foundation. Internet
Explorer utilise MSXML pour transformer
des documents sur votre station
de travail. Saxon – un processeur Java
open-source – est agile et rapide, et il prend en charge les derniers standards.
Xalan a commencé comme
Lotus-XSL et a été cédé au projet XML
Apache. XML supporte Xalan sur
l’OS/400 V5R1.

Une feuille de style XSLT contient
des instructions, des modèles et des
données. Pour transformer un document,
le processeur XSLT lit le document
XML de base et applique le traitement
que décrit la feuille de style. En
commençant en haut du document
XML, le processeur lit un élément du
document et examine les modèles
trouvés dans la feuille de style pour déterminer
quel processeur il faut appliquer
à  l’élément.

Expliquons cela par un exemple.
En prenant le document exemple XML
de la figure 2 et en appliquant la feuille
de style de la figure 3, nous obtenons
les résultats de la figure 4. Au début de la transformation, le processeur XSLT
lit les fichiers tricks.xml et tricks.xsl et
les représente sous forme arborescente
en mémoire. Ensuite, le processeur
crée un arbre de sortie vierge.
Dans cette structure d’arbre, les éléments
et leurs attributs provenant des
documents tricks.xml et tricks.xsl originaux
deviennent des noeuds. Il existe
sept types de noeuds, y compris racine,
élément, attribut et instruction de traitement.
Chaque noeud a un nom et une valeur et peut contenir des noeuds
enfants.

Après avoir construit les arbres en
mémoire, le processeur XSLT recherche
dans l’arbre tricks.xsl une
règle de modèle qui corresponde au
noeud racine de l’arbre source. Dans ce
cas, l’exemple de la figure 3 utilise
. L’information
contenue dans les attributs de
match est un modèle XSLT. Dans cette
règle de modèle, l’attribut match est une barre oblique (/). Le modèle barre
oblique correspond au noeud racine et
sépare les éléments pendant le matching.
Par exemple, le modèle
demo/heading correspond à  un élément
heading contenu dans un élément
demo. On utilise le symbole @
pour établir la correspondance avec
des noeuds d’attribut. Les modèles offrent
de puissantes possibilités de matching
et peuvent être généraux ou
spécifiques.

Les éléments de modèle du document
XSL contiennent des données et
des instructions. Comme le montre
l’exemple de la figure 3, le modèle correspondance
au noeud racine contient
des éléments de données html, head et
title ainsi que les éléments d’instruction
xsl:value-of et xsl:apply-templates.

Le processeur XSLT copie les éléments
de données dans l’arbre de sortie
et exécute les éléments d’instruction.
Les instructions apply-templates,
for-each et value-of utilisées dans cet
exemple sont des éléments communs.
Les deux premiers éléments, applytemplates
et for-each, traitent les
noeuds qui correspondent aux critères
de sélection. L’instruction apply-templates
est plus générique parce que sa
sélection est facultative ; toutefois,
l’instruction for-each demande des critères
de sélection. L’instruction valueof
accède directement aux données et
les copie dans l’arbre de sortie.

Le traitement continue par la correspondance
de modèles, la copie de
données, et l’exécution d’instructions.
La dernière étape, la sérialisation, écrit
l’arbre de sortie sur disque comme le
fichier tricks.html. L’écriture de l’arbre
de sortie sur le disque est facultative ;
on peut aussi utiliser la sortie comme
entrée d’une autre transformation. La
figure 5 montre comment cette sortie
finale apparaît dans un navigateur.

A ce stade, vous vous demandez
peut-être si le fait de créer un programme
qui lit un document XML et
écrit HTML vaut mieux que d’utiliser
XSLT. XSLT présente de nombreux
avantages : il est souple, il fonctionne avec un large choix d’entrées et sorties,
et il peut convertir un langage de
marquage d’un format dans un autre.
Mais il faut savoir que les puissantes
possibilités de correspondance de modèle
de XSLT sont difficiles à  coder et,
par conséquent, difficilement justifiables
pour un programme à  fonction
unique.

Téléchargez cette ressource

Préparer l’entreprise aux technologies interconnectées

Préparer l’entreprise aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010