Bonjour,
Je parse une fichier XML récupéré depuis une URL:
problème : dans la balise info j'ai quelque chose du genreCode:
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 leCode:<INFO>montexteİ</INFO>
pour l'envoyer tel quel à un navigateur web.Code:İ
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:
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:
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));