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 confirmé
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    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 émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    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

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    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 émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    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

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    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 émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    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);

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    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 émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    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

  9. #9
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    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 émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    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));

  11. #11
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    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 émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    ton fichier "patidfile" existe ?

  13. #13
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    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 émérite 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
    Par défaut
    t'as quoi a la ligne 395 de Z:/Resultat1/7,355,008/7355008.xml ??

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    OK fait voir ton fichier "patidfile" il est surement mal formé

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

  17. #17
    Membre émérite 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
    Par défaut
    et ben voilà rien ne vaut un bon printStackTrace

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    pas de pb ..

  19. #19
    Membre émérite 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
    Par défaut
    n'oubli pas le sinon y'en a qui vont crier

+ 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