Bonjour,
Je tente en transformer un document XML via Java (qui utilise un transformer XSL).
Donc voici la classe que j'utilisece qui est somme toute assez banale
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 package com.datalion.exogema; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; public class StylesheetTransformer { public static void main(String args[]) { new StylesheetTransformer("src/com/datalion/exogema/xml/enquiry.xml", "src/com/datalion/exogema/xml/stylesheet.xsl"); } public StylesheetTransformer (String path2xsl, String path2xml) { try { TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(new StreamSource(path2xsl)); transformer.transform(new StreamSource(path2xml), new StreamResult(System.out)); } catch (Exception e){ e.printStackTrace(); } } }
je tente de lire ce fichier XML
et de le transformer via cette feuille de style (on commence doucement)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 <?xml version="1.0" encoding="utf-8" ?> <!-- dans un premier temps pour �viter les "probl�mes" d'accentuation --> <enquiry> <question id="1" group="general" title="Avez vous un animal domestique"> <answer type="radio"> <!-- informations de mise en forme --> <option goto="3" label="Oui" /> <option goto="2" label="Non" /> <!-- l'attribut goto n'est pas indispensable lorsque sa valeur est l'id de la question suivante --> </answer> </question> <question id="2" group="general" title="Aimeriez vous en avoir"> <answer type="radio"> <option goto="3" label="Oui" /> <option goto="4" label="Non" /> </answer> </question> <question id="3" group="general" title="Le(s)quel(s)"> <answer type="checkbox"> <option label="Chien" /> <option label="Chat" /> </answer> </question> <question id="4" group="identity" title=""> <answer type="radio"> <option label="Homme" /> <option label="Femme" /> </answer> </question> <question id="5" group="identity" title="Quelle age avez vous"> <answer type="select"> <option label="option" from="12" to="28" /> </answer> </question> </enquiry>
mais voila que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?xml version="1.0" encoding="utf-8" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" omit-xml-declaration="no" ident="yes" /> <xsl:template match="/"> <html /> </xsl:template> </xsl:stylesheet>
pourtant tout est en utf-8, j'ai codés sur eclipse (configuré en utf-8)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ERREUR : 'Invalid byte 2 of 3-byte UTF-8 sequence.' ERREUR BLOQUANTE : 'Impossible de compiler la feuille de style' javax.xml.transform.TransformerConfigurationException: Impossible de compiler la feuille de style at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(Unknown Source) at com.datalion.exogema.StylesheetTransformer.<init>(StylesheetTransformer.java:21) at com.datalion.exogema.StylesheetTransformer.main(StylesheetTransformer.java:12)
pourquoi ais je ce message d'erreur ?
Partager