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 [JDOM]


Sujet :

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

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    Points : 54
    Points
    54
    Par défaut parser un fichier XML
    bonjour,
    est ce que je peux en utilisant Jdom lorsque je parse un fichier XML pour chaque lecture de sa balise je parse un autre fichier car j'ai écrit un code qui fait ça mais ça marche pas.merci

  2. #2
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    aroua,
    fait voir ton code parce que la je crois comprendre ce que tu veux faire mais ton code pourra plus nous aider

    merci
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    Points : 54
    Points
    54
    Par défaut
    voilà mon code:
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    public void SimlpeKmeans(String pathpatentnumber, String Result ){
     
    		int [][]mat = null;
    		String name;
    		String number;
    		String in;
    		int freq;
    		boolean ok=false;
    		Vector vect=new Vector();	
    		Vector dataPoints = new Vector();
    		vect= getConceptName (this.pathcpt);
    		org.jdom.Document document;
    		Element racine;
    		org.jdom.Document document2;
    		Element racine2;
    		String patidfile;
    		Element courant2 = null;
    		SAXBuilder sxb = new SAXBuilder();
    		try
    	    {     	  
    		 document = sxb.build(new File(pathpatentnumber));
    	     racine=document.getRootElement();
    		 List listNumber =racine.getChildren("Number");
    		 //On crée un Iterator sur notre liste
    	     Iterator i = listNumber.iterator();
    	      int l=0;
    	      while (i.hasNext()) 
    	      {   Vector petitvect = new Vector();
    	          Element courant = (Element)i.next();	
    	          number= courant.getText();
    	          System.out.println("voici le patent:"+number);
    	          patidfile=Result+"/"+number+"/"+number.replaceAll(",", "")+".xml";
    	          //mat=FrequencyConcept(vect,this.patidfile,l); 
     
     
    	  				          System.out.println(patidfile);
    	  				          document2 = sxb.build(new File(patidfile));
    	  				          System.out.println("je parseeeeeeeeeeeeeeeee");
    	  				          racine2=document2.getRootElement(); 
    	  			              List listConcept =racine2.getChildren("Concept");
    	  		                  Iterator h= listConcept.iterator();
    	  		                   for (int k=0; k < vect.size(); l++) {
    	  		    	                System.out.println(vect.elementAt(k));
    	  		                        while ((h.hasNext()) && (ok==false))
    	  		                         {	 courant2 = (Element)h.next();	
    	  		        	                 in=( (Element) courant2.getChildren("Name")).getText();
    	  		        	                if (in.equals(vect.elementAt(k))) { ok=true;}       
    	  		                         }
    	  		                         if (ok==false) {mat[l][k]=0; }
    	  		                         else { 
    							               freq = Integer.parseInt(((Element)courant2.getChildren("frequency")).getText());
    	  		                               mat[l][k]=freq;}
     
    	  		                     }
     
     
    	  		   for(int p=0; p < mat[0].length ; p++){
    	  			   petitvect.addElement(mat[l][p]);
    	  		   }
    	  		   l++;
     
    		     dataPoints.add(new PatentData(petitvect,number));
     
     
    	   }
     
    	    }catch(Exception e){}
     
    	    SimpleKmeans jca = new SimpleKmeans(5,1000,dataPoints);
    	    jca.startAnalysis();
     
    	    Vector[] v = jca.getClusterOutput();
    	    for (int i=0; i<v.length; i++){
    	        Vector tempV = v[i];
    	        System.out.println("-----------Cluster"+i+"---------");
    	        Iterator iter = tempV.iterator();
    	        while(iter.hasNext()){
    	            PatentData dpTemp = (PatentData)iter.next();
    	            //System.out.println(dpTemp.getObjName()+"["+dpTemp.getX()+","+dpTemp.getY()+"]");
    	        }
    	    }
     
    	}
    la ligne: parseeeeeeeeeeeeeeeeeeeeeeeeee ne s'affiche pas et un message d'eereur s'affiche puisque j'ai pas rempli ma matrice

  4. #4
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    Je pense pas que le message "parseeeeeeeee" ne s affiche pas car tu ne rempli pas ta matrice vu que tu t en sert pas pour creer ton second doc et jusqua "parseeeeeeeeeee" ...
    fait voir le message d erreur que tu as
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  5. #5
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    Points : 54
    Points
    54
    Par défaut
    c'est le message d'erreur:
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
    at java.util.Vector.elementAt(Unknown Source)
    at fr.inria.edelweiss.sealife.ClusteringAlgo.SimpleKmeans.setInitialCentroids(SimpleKmeans.java:143)
    at fr.inria.edelweiss.sealife.ClusteringAlgo.SimpleKmeans.startAnalysis(SimpleKmeans.java:48)
    at fr.inria.edelweiss.sealife.ClusteringAlgo.PrgMain.SimlpeKmeans(PrgMain.java:177)
    at fr.inria.edelweiss.sealife.PatentMining.main.test.main(test.java:180)

    mais j'arrive pas à afficher le message parseeeeeeeeeee donc il est clair que mon code ne parse pas le 2ème fichier de chemin patidfile

  6. #6
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    oui ca viens d un vecteur mais pourtant tu ne les utilise pas avant ...
    peut etre que c'est :

    vect= getConceptName (this.pathcpt);
    essaye de mettre entre com

    Sinon
    tu as cette ligne qui s affiche ?? : System.out.println(patidfile);
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  7. #7
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    Points : 54
    Points
    54
    Par défaut
    pour:vect= getConceptName (this.pathcpt);
    c'est bon déjà j'affiche le contenu de vect et j'ai pu parser aussi le fichier de chemin this.pathcpt dans la mèthode :
    getConceptName (this.pathcpt)
    oui la ligne System.out.println(patidfile); s'affiche et son résultat est:
    Z:\Resultat1/7,355,008/7355008.xml

  8. #8
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    Si le fichier xml existe bien...c'est bizarre que l erreur survient au moment ou tu veux l ouvrir ...
    En plus l erreur correspond a une liste ou vecteur

    faut que tu regarde bien quelle taille ont tes vecteurs / listes .. quelles tailles tu utilise .. et si toujours pas de rep tu par avec ta classe vide et tu rajoute ligne par ligne et tu veras bien ou ca plante ...

    ps : désolé je n'ai plus le temps aujourd hui .. c'est l heure du gouter la

    ++ tiens moi au jus
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  9. #9
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    Points : 54
    Points
    54
    Par défaut
    j'ai déjà fait ligne par ligne et toujours j'ai pas le message parseeeeeeeeeeeeee
    en tous cas merci

  10. #10
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    ben si tu as : System.out.println(patidfile); qui s'affiche
    et : System.out.println("je parseeeeeeeeeeeeeeeee"); qui s affiche pas

    c 'est que l erreur vient de :
    document2 = sxb.build(new File(patidfile));
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  11. #11
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    Points : 54
    Points
    54
    Par défaut
    en fait je sais que l'erreur est dans document2 = sxb.build(new File(patidfile));
    mais j'ai pas pu la résoudre.

  12. #12
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    ton fichier "patidfile" existe ?
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  13. #13
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    Points : 54
    Points
    54
    Par défaut
    jai ajouté:
    catch(Exception e){System.out.println(" we've got a problem");
    e.printStackTrace ();}
    et j'ai maintenant ce type d'erreur:

    we've got a problem
    org.jdom.input.JDOMParseException: Error on line 395 of document file:/Z:/Resultat1/7,355,008/7355008.xml: The processing instruction target matching "[xX][mM][lL]" is not allowed.
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:462)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:809)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:788)
    at fr.inria.edelweiss.sealife.ClusteringAlgo.PrgMain.SimlpeKmeans(PrgMain.java:162)
    at fr.inria.edelweiss.sealife.PatentMining.main.test.main(test.java:180)
    Caused by: org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:215)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:314)
    at org.apache.xerces.impl.XMLScanner.reportFatalError(XMLScanner.java:1438)
    at org.apache.xerces.impl.XMLScanner.scanPIData(XMLScanner.java:689)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanPIData(XMLDocumentFragmentScannerImpl.java:693)
    at org.apache.xerces.impl.XMLScanner.scanPI(XMLScanner.java:664)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1576)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:338)
    at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:827)
    at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:757)
    at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:148)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1168)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:455)
    ... 4 more
    Caused by: org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:215)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:314)
    at org.apache.xerces.impl.XMLScanner.reportFatalError(XMLScanner.java:1438)
    at org.apache.xerces.impl.XMLScanner.scanPIData(XMLScanner.java:689)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanPIData(XMLDocumentFragmentScannerImpl.java:693)
    at org.apache.xerces.impl.XMLScanner.scanPI(XMLScanner.java:664)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1576)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:338)
    at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:827)
    at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:757)
    at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:148)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1168)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:455)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:809)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:788)
    at fr.inria.edelweiss.sealife.ClusteringAlgo.PrgMain.SimlpeKmeans(PrgMain.java:162)
    at fr.inria.edelweiss.sealife.PatentMining.main.test.main(test.java:180)
    Caused by: org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:215)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:314)
    at org.apache.xerces.impl.XMLScanner.reportFatalError(XMLScanner.java:1438)
    at org.apache.xerces.impl.XMLScanner.scanPIData(XMLScanner.java:689)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanPIData(XMLDocumentFragmentScannerImpl.java:693)
    at org.apache.xerces.impl.XMLScanner.scanPI(XMLScanner.java:664)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1576)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:338)
    at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:827)
    at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:757)
    at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:148)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1168)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:455)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:809)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:788)
    at fr.inria.edelweiss.sealife.ClusteringAlgo.PrgMain.SimlpeKmeans(PrgMain.java:162)
    at fr.inria.edelweiss.sealife.PatentMining.main.test.main(test.java:180)
    Exception in thread "main" java.lang.NullPointerException
    at fr.inria.edelweiss.sealife.ClusteringAlgo.PrgMain.SimlpeKmeans(PrgMain.java:185)
    at fr.inria.edelweiss.sealife.PatentMining.main.test.main(test.java:180)

  14. #14
    Membre extrêmement actif Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 814
    Points
    814
    Par défaut
    t'as quoi a la ligne 395 de Z:/Resultat1/7,355,008/7355008.xml ??
    Heureux soient les fêlés, car ils laisseront passer la lumière.

    Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  15. #15
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    OK fait voir ton fichier "patidfile" il est surement mal formé
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  16. #16
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    Points : 54
    Points
    54
    Par défaut
    merci je vois l'erreur mon fichier est mal formé.

  17. #17
    Membre extrêmement actif Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 814
    Points
    814
    Par défaut
    et ben voilà rien ne vaut un bon printStackTrace
    Heureux soient les fêlés, car ils laisseront passer la lumière.

    Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  18. #18
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    pas de pb ..
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  19. #19
    Membre extrêmement actif Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 814
    Points
    814
    Par défaut
    n'oubli pas le sinon y'en a qui vont crier
    Heureux soient les fêlés, car ils laisseront passer la lumière.

    Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

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

Discussions similaires

  1. problème pour parser un fichier xml avec XML::Simple
    Par black_code dans le forum Modules
    Réponses: 3
    Dernier message: 30/01/2006, 19h32
  2. [xslt] Parser 2 fichiers XML
    Par malekms dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 30/12/2005, 12h22
  3. Parser un fichier XML
    Par Charlinecha dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 11/07/2005, 17h18
  4. [SAX] parser un fichier xml en Java
    Par royou dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/02/2005, 17h12
  5. parser des fichier .xml en perl
    Par djibril dans le forum Modules
    Réponses: 13
    Dernier message: 18/05/2004, 17h08

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