Je cherche une série de méthodes pour arriver à créer un contenu dynamique, et le XML/XSL semble ête un moyen d'y parvenir.
Mon document de départ est un contenu plus ou moins mixte, de balises Xhtml, auxquelles on a rajouté des balises et des attributs qui peuvent avoir des signification très diverses, comme par exemple avoir un sens dans la génération de code dynamique via Javascript.
Ici pour donner un exemple, j'ai crée une page de citations. Cette page contient des éléments html et une balise <quote> supplémentaire. Les éléments HTML ne devront pas bouger par la transformation XSL, mais la balise quote en revanche, devra être modifiée.
quote.xml
Code : Tout sélectionner
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="quote.xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Citations</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
<link rel="stylesheet" type="text/css" href="quote.css"/>
</head>
<body>
<h1>Citations</h1>
<p>Voici quelques citations : </p>
<quote author="Jacques Prévert">Il n'y a pas de problème, il n'y a que des professeurs.</quote>
<quote author="Arthur Rimbaud">La vision de la justice est le plaisir de Dieu seul.</quote>
<quote author="Charles Baudelaire">Ombres folles, courez au bout de vos desirs Jamais vous ne pourrez assouvir votre rage.</quote>
</body>
</html>
Code : Tout sélectionner
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xsl:template match="xhtml:*">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="xhtml:quote">
<xhtml:div>
<xhtml:b><xsl:value-of select="@author" /> : </xhtml:b>
<xhtml:div class="citation">"<xsl:value-of select="." />"</xhtml:div>
</xhtml:div>
</xsl:template>
</xsl:stylesheet>
Je pense que l'objet est assez clair.
Le problème est qu'ici, la page s'affiche correctement pour Firefox, mais pas pour IE. En réalité, je n'en suis pas à mon premier essai. Un utilisateur d'un autre forum a apporté cette solution de préfixer les balises xhtml du document xsl par l'espace de nommage xhtml, qui était la condition nécessaire pour que la page s'affiche correctement.
Après, quelques tests, il apparait clair que pour Firefox il faut l'une ou l'autre des solutions :
- la balise html du document xml soit sans espace de nommage
- si un espace de nommage est spécifié, alors il faut ajouter le préfixe aux balises dans le document xsl.
Je cherche donc une solution qui marche au moins sur ces deux navigateurs, plus si affinités. J'aurais au maximum voulu conserver cette balise html, mais je peux conçevoir qu'il faille s'en passer.
Blustuff.