IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

Comment utiliser DTDParser?


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut Comment utiliser DTDParser?
    Bonjour,
    je veux parser une DTD pour en extraire l'arboresecnce. DTDParser permet d'analyser une DTD. Mais il y a pas de documentation sur comment l'utiliser.
    Ma question:
    Comment utiliser DTDParser? et quel est le jar à utiliser?
    Je cherche aussi une documentation sur DTDParser.
    Merci.

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    je ne connais pas de documentation pour DTDParser, hormis la javadoc. Ce n'est pas très difficile à utiliser. L'objet principal, l'équivalent de Node pour DOM, est DTDItem.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    J'ai déniché un vieux code, qui te donnera peut-être un coup de pouce :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    import com.wutka.dtd.*;
    import java.io.*;
    import java.util.*;
     
    public class ParseDTD {
     
    	public static void main(String[] args) {
    		int nbElements = 0;
    		System.out.println("Parsing de la DTD...");
    		File dtdFile = new File("K:\\Docbook\\cpamvodcbk.dtd");
    		PrintWriter pw = null;
    		try {
    			pw = new PrintWriter(new FileOutputStream("K:\\Docbook\\export.dtd"), true);
    		} catch (FileNotFoundException e) {
    			System.out.println("Impossible d'ouvrir le fichier de sortie");
    			System.exit(0);
    		}
    		try {
    			DTDParser parser = new DTDParser(dtdFile);
    			DTD docbookDTD = parser.parse();		
    			Hashtable elemDTD = docbookDTD.elements;
    			nbElements = elemDTD.size();
    			Enumeration enum = elemDTD.elements();
    			while(enum.hasMoreElements()) {
    				DTDElement el = (DTDElement)enum.nextElement();
    				el.write(pw);
    			}
    		} catch (IOException e) {
    			System.out.println("Erreur " + e);
    		}
    		System.out.println("Parsing terminé:\n" + nbElements + " éléments parsés.");
    	}
    }
    Ce code prend en entrée une DTD et génère en sortie... une DTD. Ca paraît totalement inutile, en fait c'est très pratique quand la DTD d'entrée (ici une variante de la DTD Docbook) est complexe, modulaire et paramétrable (avec des entités paramètres), donc très difficile à lire et à déboguer. Ca permet d'obtenir en sortie une DTD "propre" et linéaire, bien plus facile à contrôler.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut Rep
    mais j'ai pas trouvé le package com.wutka.dtd.*
    D'où je peux le récuperer? merci

  5. #5
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut Rep
    Citation Envoyé par GrandFather
    J'ai téléchargé DTDParser de ce site, je l'ai mis dans le path de mon programme, mais il n'a pas accepté import com.wutka.dtd.DTDParser;
    comment je fais????
    Merci

  7. #7
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Tu as bien placé dtdparser121.jar dans ton classpath ?
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut Rep
    Citation Envoyé par GrandFather
    Tu as bien placé dtdparser121.jar dans ton classpath ?
    oui, je l'ai ajouté à ma classpath, mais il m'a pas accepté l'import.
    En fait, j'utilise Eclipse, j'ai fait Build path-->configure Build Path-->add external jar, puis j'ai ajouté dtdparser121.zip

  9. #9
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Citation Envoyé par GrandFather
    Tu as bien placé dtdparser121.jar dans ton classpath ?
    Citation Envoyé par choko83
    oui, je l'ai ajouté à ma classpath, mais il m'a pas accepté l'import.
    En fait, j'utilise Eclipse, j'ai fait Build path-->configure Build Path-->add external jar, puis j'ai ajouté dtdparser121.zip
    Il n'y a rien qui te choque, là ? Il faut d'abord décompresser le fichier zippé, le fichier jar est dedans...
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut Rep
    Citation Envoyé par GrandFather
    Il n'y a rien qui te choque, là ? Il faut d'abord décompresser le fichier zippé, le fichier jar est dedans...
    Merci, l'import de dtdparser s'est fait.
    Mais comment instancier un objet de type Reader pour lire une DTD?
    merci

  11. #11
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Tu pourrais peut-être t'inspirer de l'exemple que j'ai donné plus haut, au moins comme point de départ...

    Que les choses soient bien claires : je ne vais pas écrire ton code à ta place. Je veux bien t'aider à mettre ton code au point et t'expliquer quelques trucs à partir du moment où tu fourniras de ton côté un minimum d'effort de compréhension et de recherche.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut Probléme d'ordre des éléments:
    J'ai pu utiliser DTDParser pour extraire tous les éléments d'une DTD.
    Mais ils ne sont pas ni en ordre ni hiérarchisés pour faire l'arborescence de la DTD.
    Qu'est ce que je dois faire? surtout que j'utilise la méthode prédéfinie de DTDParser (parser()) et je peux pas la modifier.

  13. #13
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Par défaut parcourir un dtd
    Bonsoir choko83,
    Bonsoir tout le monde,
    je travaille aussi sur les structures des documents xml (fichier .dtd), je suis vraiment intéressé par vos travaux.
    est ce que vous pouvez m'aider par des exemples puisque je ne suis pas expert dans l'utilisation de dtdparser.
    Merci d'avance.

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  2. Comment utiliser un cache ?
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 14/03/2003, 09h55
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 09/02/2003, 23h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo