Jump to content

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 !

Link to comment
Share on other 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 !

Link to comment
Share on other 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 :)

Link to comment
Share on other 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 ?

Link to comment
Share on other 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);

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...