Aller au contenu

HELP! Lire un fichier XML


frAydjwe

Recommended Posts

Bonjour,

Je vois beaucoup du tutos qui expliquent comment lire un fichier XML grâce à une URL, mais pas beaucoup si je veux lire un fichier de mon projet android.

Au moment de la délcaration du fichier j'ai ça :

try {

/** Handling XML */

SAXParserFactory spf = SAXParserFactory.newInstance();

SAXParser sp = spf.newSAXParser();

XMLReader xr = sp.getXMLReader();

/** Send URL to parse XML Tags */

URL sourceUrl = new URL(

"http://www.androidpeople.com/wp-content/uploads/2010/06/example.xml");

/** Create handler to handle XML Tags ( extends DefaultHandler ) */

MyXMLHandler myXMLHandler = new MyXMLHandler();

xr.setContentHandler(myXMLHandler);

xr.parse(new InputSource(sourceUrl.openStream()));

} catch (Exception e) {

System.out.println("XML Pasing Excpetion = " + e);

}

Voilà, ca marche, c'est cool mais c'est une URL, donc pas ce que je veux.

J'ai essayé un truc du genre :

/** Handling XML */

SAXParserFactory spf = SAXParserFactory.newInstance();

SAXParser sp = spf.newSAXParser();

XMLReader xr = sp.getXMLReader();

/** Send URL to parse XML Tags */

String file = "config.xml";

/** Create handler to handle XML Tags ( extends DefaultHandler ) */

MyXMLHandler myXMLHandler = new MyXMLHandler();

xr.setContentHandler(myXMLHandler);

xr.parse(new InputSource(file));

} catch (Exception e) {

System.out.println("XML Pasing Excpetion = " + e);

}

Mais bien sur, ca ne fonctionne pas. Est ce que vous pourriez m'aider à lire ce fichier xml s'il vout plait... ?

MERCI !

Lien vers le commentaire
Partager sur d’autres sites

Je l'a refais de façon plus simple. Je veux accéder aux informations du fichier XML suivant :

<?xml version="1.0"?>

<ressources>

<ip>192.168.1.2</ip>

<port>11002</port>

</ressources>

Voilà tout bête. Rien de compliqué ...

Je veux accéder à ce fichier ( se trouvant à la racine de MonProjetAndroid ) dans une Activity android

et récupérer l'ip et le port dans deux variables voilà ... Les tutos que je trouve sur internet sont très biens pour lire un .xml dans une URL, mais alors pour le reste, on peut se brosser. :D

Je vous remercie !

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Je vais être un peu vague (je suis avec mon téléphone). Met ton fichier xml dans les ressources du projet ( créé un dossier raw à côté de tes autres ressources). Si je ne dit pas de bêtises ton parseur prend un inputstream en entré. Cherche comment créé un inputstream à partir des ressources locales.

Ce n'est pas très précis mais j'essaye de te mettre sur la bonne voie. Bonne continuation :)

Lien vers le commentaire
Partager sur d’autres sites

  • 10 months later...

Pour parser un contenu XML, les parsers attendent en général en entrée un InputStream. Il te suffit d'avoir un InputStream pour lire ton fichier, et de fournir cet InputStream au parser; il n'y a pas de réelle différence que le contenu soit sur le Net, dans un fichier, ... ; au final, la lecture se résume à l'obtention d'un InputStream

Donc, dans ton cas, où se situe le contenu XML que tu souhaites parser ?

Lien vers le commentaire
Partager sur d’autres sites

  • 3 weeks later...

bonjour,

le sujet est un peux vieux mais je suis dans la même attente :)

Comme le dit chpil, qu'importe la source pourvu que tu aies du InputStream.

Donc si ton fichier se trouve dans tes assets tu fais :

InputStream input = context.getAssets().open("test.xml");
parseur.parse(input, handler);

Plus généralement si ton fichier a été créé dynamiquement via

this.openFileOutput("test.xml");

Tu fais :

InputStream input = this.openFileInput("test.xml");
parseur.parse(input, handler);

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...