Traitement d'un fichier xml

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 / Exemple :


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);
        }
    }
}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.