rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[Java][Sax][xml] exemples

Posté par Pitu, le vendredi 16 mai 2003 à 15:21:17
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
Répondre à Pitu  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Jibé, le vendredi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Jibé, le vendredi 16 mai 2003 à 16:03:24
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 daddou20000010, le jeudi 3 avril 2008 à 14:40:30
bonjour
j'ai un fichier XMI je ne sais comment utiliser SAX
merci
Répondre à daddou20000010

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Pitu, le vendredi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Jibé, le vendredi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Pitu, le vendredi 16 mai 2003 à 16:28:47
Ca mérite bien un ...

#          ­; #   #######    &nb­sp;######     #####  &nbs­p; ###        &­nbsp;  ##
# #     ##   #&­nbsp;         &­nbsp;        # ­          ­#  #       &nbs­p;  #     #  &n­bsp;         &n­bsp;##
#   # #  #   #&­nbsp;         &­nbsp;        # ­          ­#  #       &nbs­p;         #&nb­sp;         &nb­sp;  ##
#     #   # &nb­sp; #####       &nbs­p;  ######   #   &nb­sp;         &nb­sp;   #      &n­bsp;       #
#          ­;#   #      &nb­sp;         &nb­sp;  #       #&­nbsp;     #    ­          ­   #
#          ­;#   #      &nb­sp;         &nb­sp;  #       &n­bsp;#     #    ­      #    ­;#         &nbs­p;    ##
#          ­;#   ##### ##    #&n­bsp;         #&­nbsp;   #####    ### ­;          ­;##


 
   (:•Þ  Pitu
Répondre à Pitu

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
peppena, le vendredi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Pitu, le samedi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Cristi, le dimanche 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[-- Jibé --], le lundi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
teebo, le lundi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Pitu, le lundi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[-- Jibé --], le lundi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
cedric, le mercredi 8 octobre 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
daddou20000010, le jeudi 3 avril 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
Discussions pertinentes trouvées dans le forum
08/01 17h01[java] validation xml, '&' et CDATA1
09/05 23h00Java et xml1
18/04 20h34Java et xml1
13/04 15h08[Java/Jgraph/XML] enregistrer un graphe en XM1
Plus de discussions sur « [Java][Sax][xml] exemples »
Logiciels pertinents trouvés dans les téléchargements
Télécharger Notepad++ 5.0.2Notepad++ - Notepad++ est un editeur de code source qui supporte plusieurs langages. Il s'agit d'un logiciel libre performant et...Catégorie: Développement
Licence: Open Source
Télécharger DriveImage XML 1.30DriveImage XML - DriveImage XML est un programme permettant de faire des images du système (partitions et lecteurs logiques) à des fins de...Catégorie: Sauvegarde
Licence: Freeware/gratuit
Télécharger FreeMind 0.8.1FreeMind - FreeMind est un logiciel de Mind mapping entièrement libre, permettant de créer des cartes heuristiques permettant de...Catégorie: Organisation
Licence: Open Source
Télécharger PSPad 4.5.2PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,...Catégorie: Développement
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [Java][Sax][xml] exemples »