Bonjour,

Je parse une fichier XML récupéré depuis une URL:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
URL u = new URL(url);
InputStream is = u.openConnection().getInputStream();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(is);
 
doc.getDocumentElement().normalize();
Element root = doc.getDocumentElement();
String info = root.getElementsByTagName("INFO").item(0).getTextContent();
problème : dans la balise info j'ai quelque chose du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<INFO>montexteİ</INFO>
La String info prend la valeur "montexte?". Impossible de lire les caratére İ (turc) ou de conserver le pour l'envoyer tel quel à un navigateur web.

J'ai essayé de passer par la chaine de caractère contenant le xml (via l'URL). Celle ci est correcte mais même avec le code suivant j'obtiens un "?" :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
String xml = getXMLStringFromURL();
String encoding = "iso-8859-1";
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Charset iso88591charset = Charset.forName(encoding);
InputStream is = new ByteArrayInputStream(xml.getBytes(iso88591charset));
J'ai essayé avec divers charset, sans succès.
Même avec ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Document in = db.parse(is);
Document doc = db.newDocument();
 
Transformer xformer = TransformerFactory.newInstance().newTransformer();  
Properties proprietes = new Properties();
proprietes.put("method", "xml");
proprietes.put("version", "1.0"); 
proprietes.put("encoding", encoding); 
proprietes.put("standalone", "yes");
proprietes.put("indent", "yes");
proprietes.put("omit-xml-declaration", "no");
xformer.setOutputProperties(proprietes);
xformer.transform(new DOMSource(in), new DOMResult(doc));
Merci d'avance pour ceux qui auraient une piste.