begin process at 2008 08 29 08:48:41
1 233 528 membres
67 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TRAITEMENT D'UN FICHIER XML


Information sur la source

Catégorie :Application Classé sous : xml, fichier Niveau : Débutant Date de création : 07/07/2002 Date de mise à jour : 07/07/2002 19:59:50 Vu / téléchargé: 9 275 / 855

Note :
Aucune note

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

Cette source a pour but de traiter un fichier xml de manière simple.
Pour cela , j'utilise une api qui est telechargeable sur le site http://java.sun.com
Il faut inclure 6 fichiers jar dans le package.

Ce code vise seulement à montrer comment on traite un fichier xml en java.
Pour toute suggestion, sky13@voila.fr

Source

  • import java.io.*;
  • import org.xml.sax.*;
  • import javax.xml.parsers.SAXParserFactory;
  • import javax.xml.parsers.SAXParser;
  • public class Echoing extends HandlerBase {
  • // Pour gérer l'indentation du document final.
  • private String indentString = " ";
  • private int indentLevel = 0;
  • // Démarrage de votre programme
  • public static void main (String argv []) {
  • if (argv.length != 1) {
  • System.err.println ("Usage: cmd filename");
  • System.exit(-1);
  • }
  • SAXParserFactory factory = SAXParserFactory.newInstance();
  • try {
  • SAXParser saxParser = factory.newSAXParser();
  • saxParser.parse( new File(argv [0]), new Echoing() );
  • } catch (Throwable t) {
  • t.printStackTrace ();
  • }
  • System.exit(0);
  • }
  • /////////////////////////////////////////////////////////////
  • // Les gestionnaires d'évènements SAX ///////////////////////
  • /////////////////////////////////////////////////////////////
  • public void startDocument () throws SAXException {
  • System.out.println("START DOCUMENT");
  • System.out.println("<?xml version='1.0' encoding='UTF-8'?>");
  • }
  • public void endDocument () throws SAXException {
  • System.out.println("END DOCUMENT");
  • if (indentLevel > 0) System.out.println("AIEEEE");
  • }
  • public void startElement (String name, AttributeList attrs)
  • throws SAXException {
  • tabs();
  • System.out.print("<"+name);
  • if (attrs != null) {
  • for (int i = 0; i < attrs.getLength (); i++) {
  • System.out.println();
  • tabs();
  • System.out.print(" ");
  • System.out.print(attrs.getName (i));
  • System.out.print(" = \"");
  • System.out.print(attrs.getValue (i));
  • System.out.print("\"");
  • }
  • }
  • if (attrs.getLength() > 0) { System.out.println(""); tabs(); }
  • System.out.println(">");
  • indentLevel++;
  • }
  • public void endElement (String name) throws SAXException {
  • indentLevel--;
  • tabs();
  • System.out.println("</"+name+">");
  • }
  • public void characters (char buf [], int offset, int len)
  • throws SAXException {
  • String s = new String(buf, offset, len);
  • if (!s.trim().equals("")) {
  • tabs();
  • System.out.println(s);
  • }
  • }
  • /////////////////////////////////////////////////////////////
  • // Fonctions utilitaires ////////////////////////////////////
  • /////////////////////////////////////////////////////////////
  • private void tabs() {
  • for(int i=0;i<indentLevel;i++) {
  • System.out.print(indentString);
  • }
  • }
  • }
import java.io.*;

import org.xml.sax.*;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;  

public class Echoing extends HandlerBase {
    // Pour gérer l'indentation du document final.
    private String indentString = "        ";
    private int indentLevel = 0;

    // Démarrage de votre programme
    public static void main (String argv []) {
        if (argv.length != 1) {
            System.err.println ("Usage: cmd filename");
            System.exit(-1);
        }

        SAXParserFactory factory = SAXParserFactory.newInstance();
        try {
            SAXParser saxParser = factory.newSAXParser();
            saxParser.parse( new File(argv [0]), new Echoing() );
        } catch (Throwable t) {
            t.printStackTrace ();
        }

        System.exit(0);
    }

    /////////////////////////////////////////////////////////////
    // Les gestionnaires d'évènements SAX ///////////////////////
    /////////////////////////////////////////////////////////////

    public void startDocument () throws SAXException {
        System.out.println("START DOCUMENT");
        System.out.println("<?xml version='1.0' encoding='UTF-8'?>");
    }

    public void endDocument () throws SAXException {
        System.out.println("END DOCUMENT");
        if (indentLevel > 0) System.out.println("AIEEEE");
    }

    public void startElement (String name, AttributeList attrs)
                                                    throws SAXException  {
        tabs();
        System.out.print("<"+name);
        if (attrs != null) {
            for (int i = 0; i < attrs.getLength (); i++) {
                        System.out.println();
                        tabs();
                System.out.print("    ");
                System.out.print(attrs.getName (i));
                System.out.print(" = \"");
                System.out.print(attrs.getValue (i));
                System.out.print("\"");
            }
        }

        if (attrs.getLength() > 0) { System.out.println(""); tabs(); }
        System.out.println(">");
        indentLevel++;
    }

    public void endElement (String name) throws SAXException {
        indentLevel--;
        tabs();
        System.out.println("</"+name+">");
    }

    public void characters (char buf [], int offset, int len)
                                                      throws SAXException {
        String s = new String(buf, offset, len);
        if (!s.trim().equals("")) {
            tabs();
            System.out.println(s);
        }
    }

    /////////////////////////////////////////////////////////////
    // Fonctions utilitaires ////////////////////////////////////
    /////////////////////////////////////////////////////////////

    private void tabs() {
        for(int i=0;i<indentLevel;i++) {
            System.out.print(indentString);
        }
    }
}
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de haineT le 19/12/2002 17:27:23

    C'est exactement ce que je cherchais! Le code fonctionne tres bien , mais avec la 1.4, (dont le package XML est fourni par defaut) ce code utilise des methodes depreciée.

  • signaler à un administrateur
    Commentaire de laglobule2000 le 23/07/2003 14:41:07

    Tu te fous de ma gueule ou koi?
    Check ca : http://www.infini-fr.com/Sciences/Informatique/Langages/Imperatifs/Java/jaxp.html

  • signaler à un administrateur
    Commentaire de Nicocyno le 16/02/2004 13:29:39

    C'est pas grave sans son copy/past j'aurai pas vu cette source ;)
    Mais c'est vrai sky13 que tu aurais pu citer l'auteur !

    Et pour pouvoir modifier un fichier XML vaut mieu que j'utilise DOM non ?

  • signaler à un administrateur
    Commentaire de Nicocyno le 16/02/2004 13:35:26

    Je viens de m'apercevoir que la fonction suivante n'est pas utilisé !
    Et quand je la commante le programme marche parfaitement.
    A quoi peut elle bien servir ??!

    public void characters (char buf [], int offset, int len) throws SAXException
    {
       String s = new String(buf, offset, len);
       if (!s.trim().equals(""))
       {
          tabs();
          System.out.println(s);
       }
    }

  • signaler à un administrateur
    Commentaire de ramouch0 le 06/05/2004 16:18:05

    la méthode characters est appellée à chaque fois qu'il y a du texte.
    par exemple:

    &lt;balise&gt;textxxtxt&lt;/balise&gt;

    on va avoir
    startElement(...)
    characters("textxxtxt",positionDuText,longeurduText)
    endElement(...)

    dans ce code elle ne fait qu'ajouter des tabulation l'orsque les balises sont vide...

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS