Je travaille sur une application Android qui analyse un ou plusieurs flux XML en fonction des préférences de l'utilisateur. Est-il possible d'analyser (en utilisant SAX Parser) plus d'un flux XML à la fois en fournissant à l'analyseur un tableau d'URL de mes flux XML? Si non, quelle serait une alternative pour lister les éléments analysés de différents flux XML dans une liste? Une approche intuitive consiste à utiliser java.io.SequenceInputStream
pour fusionner les deux flux d'entrée. Cependant, cela jette un NullPointerException:Comment analyser plusieurs flux XML à la fois à partir d'un tableau d'URL avec SAX Parser for Java?
try {
URL urlOne = new URL("http://example.com/feedone.xml");
URL urlTwo = new URL("http://example.com/feedtwo.xml");
InputStream streamOne = urlOne.openStream();
InputStream streamTwo = urlTwo.openStream();
InputStream streamBoth = new SequenceInputStream(streamOne, streamTwo);
InputSource sourceBoth = new InputSource(streamBoth);
//Parsing
stream = xmlHandler.getStream();
}
catch (Exception error) {
error.printStackTrace();
}
List<Item> content = stream.getList();
return content;
Plus d'infos nécessaires: Où attribuez-vous l'InputSource au SAXParser? Quels types d'objets sont xmlHandler et le résultat de la méthode getStream()? Utilisez-vous réellement SAX ou API StAX? –
Tomas, merci pour votre aide. J'ai fini par utiliser la solution suggérée par Don - il est beaucoup plus logique d'essayer d'ajouter des flux avant de les analyser. – ernes7a