parcours d'un fichier xml en java
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

parcours d'un fichier xml en java



  1. #1
    ahlemrh

    parcours d'un fichier xml en java


    ------

    Bonjour,
    j'ai créé un fichier dont l'extension est .xml et qui contient des balises avec xmi.
    je fais ce programme dans le but d'extraire des informations a partir de ce fichier. je commence avec un simple exemple sans test. donc le programme parait juste mais lors de l'exécution il génère plusieurs fautes:
    voici le programme que je fais:

    Code:
    public class Affichage1
    {
       static org.jdom2.Document document;
       static Element racine;
    
       public static void main(String[] args)
       {
          //On crée une instance de SAXBuilder
          SAXBuilder sxb = new SAXBuilder();
          try
          {
             //On crée un nouveau document JDOM avec en argument le fichier XML
             //Le parsing est terminé ;)
             document = sxb.build(new File("Untitled.xml"));
          }
          catch(Exception e){}
    
          //On initialise un nouvel élément racine avec l'élément racine du document.
          racine = document.getRootElement();
    
          //Méthode définie dans la partie 3.2. de cet article
          afficheALL();
       }
       static void afficheALL()
       {
          List <Element> listcontent = racine.getChildren("XMI.Content");
          List <Element> listmodel= ((Element) listcontent).getChildren("UML:Model");
          List<Element> listnamespace= ((Element) listmodel).getChildren("UML:Namespace.ownedElement");
          List <Element> listclass= ((Element) listnamespace).getChildren("UML:Class");
         for (Element elmt: listclass){
             //On affiche le nom de l’élément courant
             System.out.println(elmt.getAttribute("nom").getName());}
         
       } 
    }
    les fautes affichées sont les suivantes:
    Code:
    Exception in thread "main" java.lang.ClassCastException: org.jdom2.ContentList$FilterList cannot be cast to org.jdom2.Element
    	at Affichage1.afficheALL(Affichage1.java:34)
    	at Affichage1.main(Affichage1.java:29)
    je suis totalement perdue s'il vous plait c'est quoi l'erreur?
    Merci

    -----
    Dernière modification par ahlemrh ; 15/08/2014 à 16h14.

  2. #2
    Arzhur

    Re : parcours d'un fichier xml en java

    Bonjour,


    L'erreur dit que à la ligne 34 tu essayes de caster un objet de type FilterList en un objet de type Element....et ce n'est pas possible.


    C'est vrai que quand je vois ça :
    Code:
    List <Element> listmodel=
    et ça
    Code:
    ((Element) listmodel)
    doit bien y avoir un ptit soucis !

  3. #3
    ahlemrh

    Re : parcours d'un fichier xml en java

    Merci beaucoup pour votre réponse,
    Donc l'idée c'est de pointer a l’élément <UML:Class> qui est l'enfant de <UML:Namespace.ownedElement> et qui est a son tour l'enfant de <UML:Model>
    pour extraire les attributs et les sous éléments de <UML:Class>. comment je peux accéder a cet élément sans avoir cette erreur. pouvez vous m'aider a
    corriger cette erreur. je suis débutante et je ne sais pas beaucoup java.

    Merci

  4. #4
    Arzhur

    Re : parcours d'un fichier xml en java

    Tu peux corriger ton parcourt de fichier : par exemple "listmodel" ne doit pas être considéré comme un Element mais comme un List<Element>

  5. A voir en vidéo sur Futura
  6. #5
    ahlemrh

    Re : parcours d'un fichier xml en java

    Bonjour et merci pour votre réponse,
    mais malheureusement tu n'a pas comprendre mon but.
    le résultat de : List<Element> est une liste des éléments. et pour chaque élément de cette liste je pointe vers ses sous éléments c'est pourquoi je mets
    <Element> list model et pas List>Element> listmodel. je vous montre un peux de mon fichierxml pour mieux comprendre ma situation. j'essaie avec votre idée mais c'est indiquée comme erreur souligné en rouge. . c'est un extrait de fichier xml
    S'il vous je besoin de votre aide je suis triste parce que je passe beaucoup de temps dans ce programme sans résultat. c'est une faute très simple pour vous les experts mais pour moi c'est pas facile car je suis débutante en java .
    Code:
    <?xml version = '1.0' encoding = 'UTF-8' ?>
    <XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' timestamp = 'Wed Feb 19 14:03:41 GMT+01:00 2014'>
      <XMI.header>    <XMI.documentation>
          <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter>
          <XMI.exporterVersion>0.34(6) revised on $Date: 2010-01-11 22:20:14 +0100 (Mon, 11 Jan 2010) $ </XMI.exporterVersion>
        </XMI.documentation>
        <XMI.metamodel xmi.name="UML" xmi.version="1.4"/></XMI.header>
      <XMI.content>
        <UML:Model xmi.id = '-64--88-1-6--51e9520c:14426715470:-8000:0000000000000865'
          name = 'untitledModel' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
          isAbstract = 'false'>
          <UML:Namespace.ownedElement>
            <UML:Class xmi.id = '-64--88-1-6--51e9520c:14426715470:-8000:0000000000000866'
              name = 'PlayMediaScreen' visibility = 'public' isSpecification = 'false'
              isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
              <UML:Classifier.feature>
                <UML:Attribute xmi.id = '-64--88-1-6--51e9520c:14426715470:-8000:0000000000000867'
                  name = 'back' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
                  changeability = 'changeable' targetScope = 'instance'>
                  <UML:StructuralFeature.multiplicity>
                    <UML:Multiplicity xmi.id = '-64--88-1-6--51e9520c:14426715470:-8000:0000000000000868'>
                      <UML:Multiplicity.range>
                        <UML:MultiplicityRange xmi.id = '-64--88-1-6--51e9520c:14426715470:-8000:0000000000000869'
                          lower = '1' upper = '1'/>
                      </UML:Multiplicity.range>
                    </UML:Multiplicity>
                  </UML:StructuralFeature.multiplicity>
                </UML:Attribute>
                <UML:Attribute xmi.id = '-64--88-1-6--51e9520c:14426715470:-8000:000000000000086A'
                  name = 'start' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
                  changeability = 'changeable' targetScope = 'instance'>
                  <UML:StructuralFeature.multiplicity>
                    <UML:Multiplicity xmi.id = '-64--88-1-6--51e9520c:14426715470:-8000:000000000000086B'>
                      <UML:Multiplicity.range>
                        <UML:MultiplicityRange xmi.id = '-64--88-1-6--51e9520c:14426715470:-8000:000000000000086C'
                          lower = '1' upper = '1'/>
                      </UML:Multiplicity.range>
                    </UML:Multiplicity>
                  </UML:StructuralFeature.multiplicity>
                </UML:Attribute>
                <UML:Attribute xmi.id = '-64--88-1-6--51e9520c:14426715470:-8000:000000000000086D'
                  name = 'stop' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
                  changeability = 'changeable' targetScope = 'instance'>
                  <UML:StructuralFeature.multiplicity>
                    <UML:Multiplicity xmi.id = '-64--88-1-6--51e9520c:14426715470:-8000:000000000000086E'>
                      <UML:Multiplicity.range>
                        <UML:MultiplicityRange xmi.id = '-64--88-1-6--51e9520c:14426715470:-8000:000000000000086F'
                          lower = '1' upper = '1'/>
                      </UML:Multiplicity.range>
                    </UML:Multiplicity>
                  </UML:StructuralFeature.multiplicity>
                </UML:Attribute>
                <UML:Operation xmi.id = '-64--88-1-6--51e9520c:14426715470:-8000:0000000000000870'
                  name = 'PlayMediaScreen' visibility = 'public' isSpecification = 'false'
                  ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
                  isLeaf = 'false' isAbstract = 'false'>
                  <UML:BehavioralFeature.parameter>
                    <UML:Parameter xmi.id = '-64--88-1-6--51e9520c:14426715470:-8000:0000000000000871'
                      name = 'return' isSpecification = 'false' kind = 'return'/>
                  </UML:BehavioralFeature.parameter>
                </UML:Operation>
    merci beaucoup

  7. #6
    Arzhur

    Re : parcours d'un fichier xml en java

    le résultat de : List<Element> est une liste des éléments. et pour chaque élément de cette liste je pointe vers ses sous éléments c'est pourquoi je mets
    Ce n'est pas ce que tu fais ...

    D'abord tu récupères une LISTE d'Element et ensuite tu fais comme si c'était un Element ( avec ton cast). A aucun moment tu "pointes vers les sous-élément de chaque élément de la ta liste".

  8. #7
    ahlemrh

    Re : parcours d'un fichier xml en java

    Bonjour,
    Don est ce que je peux utiliser un boucle for : pour chaque élément de listmodel je récupère ses sous éléments et puis je fais le test.
    pour le moment je change (Element) par List<Element> et si il ne fonctionne pas alors j'essaie avec le boucle for et si je trouve un probléme je pose ça et
    j’espère que vous m'aider . je répète que je suis débutante et je besoin l'aide des experts comme vous
    merci bien

  9. #8
    Arzhur

    Re : parcours d'un fichier xml en java

    Don est ce que je peux utiliser un boucle for : pour chaque élément de listmodel je récupère ses sous éléments et puis je fais le test.
    Il me semble que c'est ce que tu voulais faire.

    pour le moment je change (Element) par List<Element> et si il ne fonctionne pas alors j'essaie avec le boucle for
    L'idée n'est pas de tester toute les combinaisons possibles, mais de comprendre ce qu'on écrit.


    Quand on débute, il est souvent bon d'écrire le programme "sur papier" (avec du pseudo-code) avant de se lancer dans l'implémentation pure.

Discussions similaires

  1. fichier excel sous java
    Par invite9da73615 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 25/06/2012, 18h03
  2. code java==> fichier texte
    Par invitecf64a78a dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 24/02/2012, 05h50
  3. Fichier Java
    Par GECKO00 dans le forum Programmation et langages, Algorithmique
    Réponses: 67
    Dernier message: 15/12/2011, 23h09
  4. JAVA :Lecteur d'un fichier
    Par invitee5fedd72 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 18/01/2009, 22h01
  5. traitement de fichier en java- aide
    Par Gaara dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 30/07/2005, 14h09