Question

J'étends Defaulthandler pour analyser un XML. J'analyse cette page:http://maps.googleapis.com/maps/api/directions/xml?origin=staten%20island&destination=florida&sensor=false

Je reçois tous les points de polyligne>. Tout fonctionne bien, sauf pour une chaîne spécifique. Je dépasse la méthode des personnages dans Defaulthandler comme ceci:

public void characters(char[] ch, int start, int length) throws SAXException {
if (currentElement) {
    Log.v("Length", length+"");
    currentValue = new String(ch, start, length);
    currentElement = false;
    }

}

La longueur renvoie 282 lorsque la chaîne mesure 660 caractères. C'est la chaîne:

qhitfxpifmn @ t @ vaCdMWnnbjeeti | plixnxhhmjldq | dalwa~CxfEfOxRlKO ~ pduvoltnhdjbyl fvlwq@~p@~gAgafkzkbpRpa@bi@|wAnuBjZ|c@rD~FJjp | i | qzr @~AbKpSJ ~ ovgdknphubmpn ~ {@ ~ {@ tlhmlzfzni ~ ilh @ nh @ nnO~GbJjEpGpErHbIfPpDxIvDpKzRvp@rE|MrF|MhKpRbFIr_ @ jo @LtS~MzYp[bw@hEvJ|FLblvqzhrjfv @ fz @ nuxxhAtoAlGzIlAbwavmfrx_anmalr @ z} @jqttfjxjv] h] budfqdjfrgbi ~ k | e ~ hpfnklfflzb | fjelmhcvi | tw@vDnPzChPx@vFdBhOrh@xlFbNptAvAdMnBMnejt ~ evqhfO~FNjcjfhethlebhbk @ bx @ fwb ^ nsvxnsryxgpkjdvgndxhnhdr ~ _a | gcdnz] tetmfs @ zlbbhhinhinhp\hJ|PbIvOxB|E|m@plA~LpUzs@dwAvj@hfA|D|IrDrJzlAriDhFfR~Uv~@h@j | afy @{DtFzX|BtOpArLvSjcCv@dNJjEGbFDdDVnElAnIx@xDnC~JbApFb@fDbKb~@Dj ^ hbvn | bbo | dl

Et c'est ce que Defaulthandler retourne:

qhitfxpifmn @ t @ vaCdMWnnbjeeti | plixnxhhmjldq | dalwa~CxfEfOxRlKO ~ pduvoltnhdjbyl fvlwq@~p@~gAgafkzkbpRpa@bi@|wAnuBjZ|c@rD~FJjp | i | qzr @~AbKpSJ ~ ovgdknphubmpn ~ {@ ~ {@ tlhmlzfzni ~ ilh @ nh @ nnO~GbJjEpGpErHbIfPpDxIvDpKzRvp@rE|MrF|MhKpRbFIr_ @ jo @LtS~MzYp[bw@hEvJ|FLblvqzhrjfv @ fz @ nuxxh`ato

Cela s'arrête au personnage 282 et je ne sais pas pourquoi.

Était-ce utile?

La solution

À partir de la documentation du Contenu Interface, qui est implémentée par Defaulthandler:

Les analyseurs de sax peuvent renvoyer toutes les données de caractère contigu en un seul morceau, ou ils peuvent les diviser en plusieurs morceaux

Vous devez agréger les données de plusieurs appels à cette méthode dans un stringbuilder, puis gérer ces données dans l'appel d'endettement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top