Bonjour,
Je parse une fichier XML récupéré depuis une URL:
problème : dans la balise info j'ai quelque chose du genre
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();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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <INFO>montexteİ</INFO>
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 "?" :
J'ai essayé avec divers charset, sans succès.
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));
Même avec ça :
Merci d'avance pour ceux qui auraient une piste.
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));
Partager