2009-12-05 7 views
3

En résumé: afin d'ajouter facilement des tests unitaires pour un analyseur SAX, je voudrais charger du XML à partir d'un fichier.Charger le fichier à partir de la ressource

Maintenant, j'ai mon XML dans une chaîne statique à l'intérieur de ma classe de test d'unité, mais ce n'est pas très pratique pour le grand XML.

C'est pourquoi je voudrais ajouter quelques fichiers XML à mon projet et les charger dans mon test unitaire. Comment puis-je faire ceci?

Répondre

9

Cette question est étiquetée comme « Android » et je remarque que vous avez mentionné un Activity, donc je vais supposer que vous essayez de charger un fichier XML dans une application Android. Si tel est le cas, mettez votre fichier XML sous /assets et appelez:

InputStream is = getAssets().open("input.xml") 

de votre Activity. De là, vous pouvez le manipuler en SAXBuilder. Cela ne fonctionnera que si vous avez configuré votre test pour qu'il s'exécute sur l'émulateur (ou si vous essayez simplement de déboguer en dehors d'un test unitaire).

+0

Merci. Je vais essayer lundi prochain quand je serai au bureau. – Quentin

1

SAXBuilder a un constructeur pour lire les données du fichier: Création de document (fichier java.io.File) Cela crée un document à partir du nom de fichier fourni. http://www.jdom.org/docs/apidocs/org/jdom/input/SAXBuilder.html

+0

Merci, je ne savais pas pour cette méthode de SAXBuilder Mais mon message n'était pas clair, mon problème est: Je ne sais pas quoi faire pour obtenir un objet File à partir de mon fichier xml. Par exemple lorsque j'appelle la méthode fileList() de mon contexte d'activité actuel, j'obtiens un tableau vide. Peut-être que je dois ajouter quelques informations dans mon projet Eclipse afin d'avoir accès à ce fichier à partir de l'application. – Quentin

+0

étant donné que votre fichier s'appelle input.xml et qu'il se trouve dans le dossier actuel de votre application, vous pouvez appeler: Document doc = (nouveau SAXBuilder()). Build ("input.xml"); – Moisei

Questions connexes