Rechercher : dans
Par :

[Java][Sax][xml] exemples

Dernière réponse le 3 avr 2008 à 14:40:30 Pitu, le 16 mai 2003 à 15:21:17 
 Signaler ce message aux modérateurs

Bonjour à toutes et à tous.

Cela va surprendre ceux qui m'ont suivi au cours de mes posts sur ce forum, mais oui, je m'interresse également aux nouvelles techno !

Postulat de base : je débute totalement en java.

But : Extraire des morceaux d'un fichier xml pour créer plusieurs fichiers.

Exemple :
<Debut>
<nom>Fic1</nom>
<rep>/repA</rep>
<contenu> ... </contenu>
<nom>Fic2</nom>
<rep>/repB</rep>
<contenu> ... </contenu>
<nom>Fic3</nom>
<rep>/repC</rep>
<contenu> ... </contenu>
...
</debut>

=> je voudrais créer 3 fichiers nommés Fic1, Fic2 et Fic3, chacun contenant le contenu de sa balise <contenu> (Ouf !), et chacun situé dans le répertoire /repA, /repB ou repC ...

Je ne vous demande évidemment pas de me macher le travail, mais après avoir cherché un peu dans mes docs, je m'oriente vers l'utilisation du parser Sax.
Et si l'un ou l'une d'entre vous avait un lien vers un exemple d'utilisation, ça me rendrait rudemment service.
Je suis preneur de toute documentation pouvant m'aider (ormis celles de ce site que j'ai déjà commencé à explorer).

Rappel : je débute complètement en java (mais je l'ai déjà précisé, il me semble).

D'avance merci ...

 
   (:•Þ  Pitu

Meilleures réponses pour « [Java][Sax][xml] exemples » dans :
Supprimer les anciennes versions de Java avec JavaRa VoirJavaRa A propos de la gestion des machines virtuelles Java Présentation de JavaRa Exemple de rapport émis par JavaRa A propos de la gestion des machines virtuelles Java Pour des mises à jour ciblées de java Sun a finalement donné une...
DOM (Document Object Model) et SAX (Simple API for XML) VoirXML permet de définir la structure du document uniquement, ce qui permet d'une part de pouvoir définir séparément la présentation de ce document, d'autre part d'être capable de récupérer les données présentes dans le document pour les...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
XML-RPC (Remote Procedure Call) VoirXML-RPC Le standard XML-RPC, défini depuis 1998, est un protocole basé sur XML permettant l'invocation de procédures à distance. Avec XML-RPX l'appel d'une

1

Jibé, le 16 mai 2003 à 16:00:19

Salut !

C'est une bonne chose de s'intéresser aux nvelles technos :)

Vas à cette adresse : http://www.application-servers.com/

Tu pourras y télécharger le "livre blanc XML" qui répondras à tes questions sur XML (il contient notamment des exemples de code implémentant SAX)

J'espère que tu y trouveras ton bonheur !

Jibé

Répondre à Jibé

2

Jibé, le 16 mai 2003 à 16:03:24
  • +1

Voici une classe implémentant SAX :

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;


public class A2DefaultHandler extends DefaultHandler{
//----------------------------------------------------------­--------------------------------------------------
public void parse(String fullFileName){
SAXParser parser;
SAXParserFactory factory = SAXParserFactory.newInstance();
try {
parser = factory.newSAXParser();
parser.parse(new File(fullFileName), this);
} catch (SAXException se) {
// handle error
} catch (IOException ioe) {
// handle error
} catch (ParserConfigurationException pce) {
// handle error
}
}
//----------------------------------------------------------­--------------------------------------------------
public void setDocumentLocator(Locator locator){}
//----------------------------------------------------------­--------------------------------------------------
public void startDocument() throws SAXException{}
//----------------------------------------------------------­--------------------------------------------------
public void endDocument() throws SAXException{}
//----------------------------------------------------------­--------------------------------------------------
public void processingInstruction(String target, String data){}
//----------------------------------------------------------­--------------------------------------------------
public void startPrefixMapping(String prefix, String uri){}
//----------------------------------------------------------­--------------------------------------------------
public void endPrefixMapping(String prefix){}
//----------------------------------------------------------­--------------------------------------------------
public void startElement(String namespaceURI, String localName, String raxName, Attributes atts) throws SAXException{}
//----------------------------------------------------------­--------------------------------------------------
public void endElement(String namespaceURI, String localName, String rawName) throws SAXException{}
//----------------------------------------------------------­--------------------------------------------------
public void characters(char[] ch, int start, int length) throws SAXException{}
//----------------------------------------------------------­--------------------------------------------------
public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException{}
//----------------------------------------------------------­--------------------------------------------------
public void skippedEntity(String name)throws SAXException{}
}



Cette classe est vide, c'est le strict minimum pour faire du SAX. Sache que toutes les méthodes qui sont présentes sont obligatoires (sauf peut être la première mais c'est la plus importante...) même si tu les laisse vide.

A toi maintenant de remplir selon tes besoins !

Répondre à Jibé

15

 daddou20000010, le 3 avr 2008 à 14:40:30

Bonjour
j'ai un fichier XMI je ne sais comment utiliser SAX
merci

Répondre à daddou20000010

3

Pitu, le 16 mai 2003 à 16:07:54

Ben ... Merci !

J'ai rien compris, mais je suis sûr que ça va m'aider.
Me reste plus qu'à plancher ...

Si t'as d'autres pistes, n'hésite surtout pas.
Sorti du cobol, moi, je nage ... Gloubs !

 
   (:•Þ  Pitu

Répondre à Pitu

4

Jibé, le 16 mai 2003 à 16:12:43

La première méthode sers à lancer le processus. Ensuite, le parser analyse séquentiellement le fichier (c'est à dire que si tu veux revenir en arrière, tu dois recommencer du début - enfin si tu fait du cobol, tu doit le savoir mieux que moi)

Le reste n'est qu'un gestionnaire d'évènement :

La méthode startElement est éxécutée à chaque fois que le parser rencontre une balise XML ouvrante.

Les attributs des méthodes te donnent des infos sur le document (nom de la balise, texte contenu...Etc...)

Si tu a des questions précises, n'hésites pas !

Jibé.

Répondre à Jibé

5

Pitu, le 16 mai 2003 à 16:28:47

Ca mérite bien un ...

#           #   #######     ######     #####    ###           ##
# #     ##   #                   #           #  #          #     #             ##
#   # #  #   #                   #           #  #                 #             ##
#     #   #   #####          ######   #                 #              #
#          #   #                   #       #      #                 #
#          #   #                   #        #     #          #    #              ##
#          #   ##### ##    #          #    #####    ###           ##


 
   (:•Þ  Pitu

Répondre à Pitu

6

peppena, le 16 mai 2003 à 18:54:06

C'est un parseur Dom
mais ca peut t'aider

http://www.javafr.com/article.aspx?Val=190

cordialement

Répondre à peppena

7

Pitu, le 17 mai 2003 à 18:21:49

Merci également, Peppena.
Mais je pense que mon besoin nécessite plus un parseur comme Sax que Dom : J'ai juste besoin de parcourir séquentiellement mon fichier, et non d'accéder à une feuille directement par son path.
Maintenant, je peux me tromper ...
Continuez à m'envoyer tout ce qui peut être susceptible de m'aider.
Je regarderai ça lundi au boulot.

Et encore merci.
 
   (:•Þ  Pitu

Répondre à Pitu

8

Cristi, le 18 mai 2003 à 07:43:27

Bonjour,
c'est un vrai plaisir de vous trouver : moi aussi je commence la programmation JAVA. J'ai aussi la documentation de ce site mais je n'ai pas le temps pour parcourir tous les articles. Si vous pouvez me donner une certaine reference ... je vous ecoute. Ou bien me dire qqch sur ce que vous avez deja fait dans ce domaine. Ces nouvelles technologies sont tres interessantes je trouve.
A bientot.
Cristi

Répondre à Cristi

9

[-- Jibé --], le 19 mai 2003 à 10:39:59

Pitu --> oui je pense que SAX est préférable à DOM dans ton cas. De plus, tu évites tout problème de mémoire : DOM étant très couteux en mémoire, il ne faut l'utiliser que lorsque c'est inévitable, c'est à dire lorsque l'on veux modifier le document XML (ajouter des noeuds, modifier la structure XML, sauvegarder le document etc.). Si tu manipule un gros fichier XML (de plusieurs Mos), DOM montant tout le fichier en mémoire, tu peux avoir un 'OutOfMemory' pas très joli sur l'écran.

Dans tous les autres cas, il faut préférer SAX. Enfin c'est mon avis et c'est discutable.

Si tu as des questions précises, n'hésites pas.

Répondre à [-- Jibé --]

10

teebo, le 19 mai 2003 à 10:44:15

Moi je prefere XSLTPROC, c'est mon avis et ceci est indiscutable :-DDD
Mais dis moi Pitu tu cherches a ecrire un parser ou un xslt?

.  .
\_/

Répondre à teebo

11

Pitu, le 19 mai 2003 à 10:59:03

Salut Teebo.

Ben ... ni l'un ni l'autre, en fait.
Pour plus de précisions sur ce que je veux faire, je te renvoie au début de ce post. J'ai essayé d'y expliquer plus ou moins clairement mon but.
Le pb est que je parle couramment le procédural, mais que je comprends pas une bribe d'objet ... ;o)

a+
 
   (:•Þ  Pitu

Répondre à Pitu

12

[-- Jibé --], le 19 mai 2003 à 11:15:18

Teebo --> je n'ai pas dis que je préférais SAX, j'ai dis que c'était préférable de l'utiliser dans ce cas :)

Sinon, je ne connais de XSLT que la transformation d'un document XML en Html (donc pas adapté au pb dont on parle)... je ne sais pas si c'est possible de faire autre chose avec. Je ne connais pas non plus XSLTPROC ni les fonctionnalités qu'il propose... Tu peux nous en parler ?

Répondre à [-- Jibé --]

13

cedric, le 8 oct 2003 à 11:55:54

Bonjour à toutes et à tous ,
J'ai besion de consulter des exemples de parseurs XML ,si vous connaissez des sites de parseurs XML ,merci de me les fournir et
bonne continuation à toutes et à tous .

cedric

Répondre à cedric

14

daddou20000010, le 3 avr 2008 à 13:12:04

Bonjour
J’ai exporté un diagramme d’activité en XMI et je veux joindre ce fichier XMI au fichier XMI de diagramme de classe correspondante à l’aide de SAX.
E je ne sais pas comment je peu utiliser SAX
merci

Répondre à daddou20000010
Collection CommentÇaMarche.net