Ce code est en cours d'exécution sur Blackberry JDE v4.2.1 Il s'agit d'une méthode qui effectue des appels API Web renvoyant XML. Parfois, le XML retourné n'est pas bien formé et j'ai besoin de supprimer tous les caractères invalides avant d'analyser.Comment supprimer les caractères XML non valides d'un flux dans J2ME? org.xml.sax.SAXParseException: caractère non valide
Actuellement, j'obtiens: org.xml.sax.SAXParseException: Invalid character '' encountered
. Je voudrais voir des idées d'un moyen rapide d'attacher un stripper de caractère invalide sur le flux d'entrée de sorte que le flux circule simplement à travers le validateur/décapant et dans l'appel d'analyse. c'est-à-dire que j'essaie d'éviter d'enregistrer le contenu du flux.
Code existant:
gestionnaire est une substitution de DefaultHandler
URL est une chaîne contenant l'API URL
hconn = (HttpConnection) Connector.open(url,Connector.READ_WRITE,true);
...
try{
XMLParser parser = new XMLParser();
InputStream input = hconn.openInputStream();
parser.parse(input, handler);
input.close();
} catch (SAXException e) {
Logger.getInstance().error("getViaHTTP() - SAXException - "+e.toString());
}
Depuis Blackberry n'a apparemment pas FilterReader non plus, j'ai modifié le ci-dessus pour ne pas l'utiliser. –
RIM n'inclut pas non plus Character.isValidCodePoint() Je devais rouler le mien. Mais, cette méthode semble fonctionner - sur le simulateur au moins. Heureusement, il tiendra également et ne sera pas trop lent sur un appareil réel. Merci! –
De rien. Assurez-vous de bien tester. Cela va inévitablement ralentir les choses puisque chaque personnage doit être (re) vérifié. Cependant, je ne pense pas que je fasse des copies inutiles. P.S. Je suis curieux de savoir comment vous avez implémenté isValidCodePoint. –