9
votes

Java. SAX PAYER. Comment briser manuellement l'analyse?

Dites-moi s'il vous plaît est-il possible de casser le processus d'analyse? C'est à dire. Quittez cette boucle n'atteignant pas la fin du document et l'événement correspondant "Enddocument"?


1 commentaires

Identique que cette question Stackoverflow.com/Questtions/1345293/...


3 Réponses :


12
votes

Jetez une exception dans le gestionnaire et attrapez-la dans le bloc de code où vous avez commencé à analyser: xxx

et dans votre documentHandler: xxx < / p>


2 commentaires

BTW: 2 ans plus tard, je commence à penser qu'il est assez malheureux que nous devions utiliser une exception pour contrôler le flux. Briser le processus d'analyse peut être parfaitement valable dans des scénarios de non-erreur ... Si jamais quelqu'un trouve une meilleure solution, je serais heureux de le lire!


Jeter une sous-classe de SaxparseXception et vous obtiendrez un rappel Dans le Errorhandler .



2
votes

Vous devez lancer une saxexception. Afin de le distinguer des erreurs régulières, je la sousglobe avec ma propre classe d'exception


0 commentaires

4
votes

Une solution simple serait d'utiliser une analyse de stax - au lieu de SAX. Bien que SAX a une analyse poussée - les événements soient envoyés au gestionnaire par les analyseurs, Stax est à l'analyse, les événements nous sont donnés à travers XMLEVentreader, qui peuvent être utilisés similaires à un itérateur. Il est donc plus facile de mettre en œuvre une pause conditionnelle pour sortir de l'analyse.


0 commentaires