Bonjour, j'ai fait un petit code qui permet de prendre un document xml et un filtre xslt afin de d'en generer du xml (plus precisement html dans ce cas). Le probleme est que lors de la transformation il convertit, par exemple, un 'é' en 'é', ce qui implique des entitées. Mais dans mon cas si je veux en faire du xml ca bug car le 'é' n'est pas reconnu. Donc je me demandait comment imposer le utf-8 au transformer?

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
public class XSLTInterpreter
{
 private File documentFile;
 private File xsltFile;
 public XSLTInterpreter(String documentPath, String xsltPath)
  throws IOException
 {
  this(new File(documentPath), new File(xsltPath));
 }
 public XSLTInterpreter(File documentFile, File xsltFile)
  throws IOException
 {
  if (documentFile.canRead())
  {
   this.documentFile = documentFile;
  }
  else
  {
   throw new IOException("can't read documentFile " + documentFile);
  }
  if (xsltFile.canRead())
  {
   this.xsltFile = xsltFile;
  }
  else
  {
   throw new IOException("can't read xsltFile" + xsltFile);
  }
 }
 public String toString()
 {
  StringWriter writer;
  Transformer transformer;
  StreamSource source;
  StreamResult result;
  writer = new StringWriter();
  try
  {
   transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(this.xsltFile));
   source = new StreamSource(this.documentFile);
   result = new StreamResult(writer);
   transformer.transform(source, result);
  }
  catch (TransformerConfigurationException e)
  {
   System.out.println("can't associate the xsltFile with the transformer");
  }
  catch (TransformerException e)
  {
   System.out.println("can't transform the documentFile");
  }
  return writer.toString();
 }
 //test purpose
 public static void main(String[] arg)
 {
  try
  {
   System.out.println(new XSLTInterpreter(arg[0], arg[1]));
  }
  catch (Exception e)
  {
   System.out.println(e);
  }
 }
}
Le gros du probleme se situe dans la methode toString() (je sais ce n'est pas une bonne habitude de mettre ca la :p).