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 :

parser un fichier xml dans un projet J2EE [JDOM]


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut parser un fichier xml dans un projet J2EE
    salut pour tous,

    je travail dans un projet J2EE je veux accéder à un fichier xml (amadeus.xml), j'utilise Jdom. la méthode de pasing est correcte c'est celle du cour http://cynober.developpez.com/tutoriel/java/xml/jdom/.
    le problème quand je fais cette méthode dans mon projet J2ee il ne fait pas le parsing : Code :

    //Code du Bean :

    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
    /**
             * Method to browse travels to cutomer
             */
    	public void findDifferentTravel() {
     
    		// connectToXmlData();
    		SAXBuilder sxb = new SAXBuilder();
    		try {
    			document = sxb.build("amadeus.xml");
    		} catch (Exception e) {
     
    		}
    		rootElement = document.getRootElement();
    		List<Element> traveList = rootElement.getChildren("travel");
    		for (Element cuurentElement : traveList) {
    			if (cuurentElement.getChild("ferry_name").getTextTrim().equals(
    					"ssdc")) {
    				itineraire = cuurentElement.getChild("itinerary").getTextTrim();
    			}
    		}
    	}
    l'instruction : rootElement = document.getRootElement(); ne s'execute pas.

    dans la page mapage.xhtml je veux afficher la valeur de itineraire de la maniére suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="#{scheduleRequestAction.itineraire}"></h:outputText>
    ==> l'erreur est : l'istruction rootElement = document.getRootElement(); ne passe pas.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Caused by: java.lang.NullPointerException
    	at de.seetour24.action.ScheduleRequestAction.findDifferentTravel(ScheduleRequestAction.java:149)
    
    
    merci pour votre aides.

  2. #2
    Membre chevronné
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Par défaut
    Tu trouves ça étonnant ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try {
    			document = sxb.build("amadeus.xml");
    		} catch (Exception e) {
     
    		}
    S'il y a une exception dans cette instruction alors tu ne fais rien... Ton erreur est sûrement là. Ajout un e.printStack(); et tu vas voir l'erreur.

    De plus, tu utilises une méthode préhistorique pour parser les fichiers XML, il y a des API mieux que ça : XStream, XmlBean, JAXB.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut Probléme résolut
    Merci bien darkxan le problème est résolut, c'est la méthode e.printStackTrace(); qui m'a afficher l'erreur c'est pas e.printStack();.

    L'erreur c'est que je doit mettre le fichier (amadeus.xml) sous le répertoire D:\rhdevstudio\eclipse .

    vous m'avez dit que la méthode que j'utilise est préhistorique j'utilise JDOM. est ce que avec les API que vous m'avez cité XStream, XmlBean, JAXB est plus facile est mieux ?
    Un question pour tous les membre de de forum :

    Quel est la meilleur API pour parser un fichier xml actuellement ?

    Merci pour vos réponses?

  4. #4
    Membre chevronné
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Par défaut
    Ça dépends...

    Si tu as un fichier XSD alors JAXB est je pense le meilleur. A partir du fichier XSD, il te génère les classes et tu n'as rien à faire... L'autre possibilité est d'utiliser XmlBeans.

    Sinon sans schéma, tu peux utiliser XStream qui permet d'utiliser des classes déjà existantes pour parser le fichier XML. Il y a peu de configuration à faire.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    thx,
    Moi dans mon application j'ai utiliser JDOM et je le trouve facile à configurer et utiliser.

    quel est son défit d'après vous ?

  6. #6
    Membre chevronné
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Par défaut
    C'est une API 'bas-niveau' : tu dois écrire le parseur. Tandis que dans les API de plus haut niveau, tu n'écris pas le parseur tu récupères juste les valeurs de ton fichier.

    Productivité, simplicité...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SAX] Parser un fichier XML et exraire des données dans un matrice ou liste en JAVA
    Par chcheibani dans le forum Format d'échange (XML, JSON...)
    Réponses: 12
    Dernier message: 21/03/2014, 15h26
  2. Réponses: 0
    Dernier message: 27/08/2012, 11h21
  3. Réponses: 8
    Dernier message: 26/12/2009, 15h18
  4. [DOM XML] Parser un fichier XML pour insertion dans la base
    Par npirard dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 08/09/2008, 15h44
  5. utilliser un autre fichier xml dans un xsl
    Par New Bee dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/04/2003, 10h55

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