Filtrage Instructions initiales XML & XSLT
Bonjour,
Je cherche une méthode pour modifier (ajouter & supprimer) les déclarations/instructions initiales xml et xml-style-sheet d'un document xml.
FICHIER SOURCE:
Code:
1 2
| <?xml version="1.0" ?>
<?xml-stylesheet href="monfichier.xsl" type="text/xsl" ?> |
FICHIER CIBLE:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
J'ai regardé de ce côté là :
Code:
<xsl:output omit-xml-declaration = "yes" method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
Mais il me semble que cela ne gère pas l'instruction xml-stylesheet ni ne permet de forcer le type d'encodage. Par ailleurs, en sauvegardant mon fichier transformé dans Firefox, j'obtiens un
Code:
<?xml version="1.0" encoding="windows-1252"?>
et non le encoding="ISO-8859-1" attendu. :(
Merci pour vos lumières !
Radu
Filtrage Déclaration XML / Instruction XSLT (ajout/omission/suppression)
Pour exécuter ma transformation, j’utilise le moteur XSLT de Firefox : j’ouvre mon fichier XML dans Firefox, j’obtiens le fichier sortant en le sauvegardant sous un autre nom via ‘Enregistrer sous’ pour ensuite en voir le résultat dans Notepad++.
Je comprends qu’il faut distinguer les méthodes pour gérer en sortie la déclaration xml et l’instruction de traitement xslt.
1) Ainsi <xsl :output> permet d’ajouter/omettre la déclaration xml.
2) Pour l’instruction de traitement xslt, ce code avec <xsl:processing> me permet de la générer :
Code:
1 2 3 4 5 6
| <xsl:template match="/">
<xsl:processing-instruction name="xml-stylesheet">
<xsl:text>type="text/xsl" href="style.xsl"</xsl:text>
</xsl:processing-instruction>
<xsl:apply-templates />
</xsl:template> |
Par contre, si je ne me trompe pas, pour le cas de la suppression, il faut trouver autre chose... J’ai essayé ça qui marche pas mal ;) :
Code:
<xsl:template match="//*[name(.)='xml-stylesheet']"></xsl:template>
Merci Thelvin !