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

Spring Web Java Discussion :

Parser un flux XML


Sujet :

Spring Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Par défaut Parser un flux XML
    Bonjour,

    J'ai besoin de parser un document XML et le sauvegarder dans une base de données, en utilisant Spring, SAX, JSF et les RichFaces

    Mon code source est:
    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    package dao;
     
    import org.xml.sax.Attributes;
    import org.xml.sax.ContentHandler;
    import org.xml.sax.Locator;
    import org.xml.sax.SAXException;
     
    import persistence.Personnel;
    import services.PersonnelService;
     
    public class Personnelhandeler  implements ContentHandler {
     
    	public Personnel per;
    	public   PersonnelService dataPt;
    	private String name;
    	private boolean inPers; 
    	public Personnelhandeler() {
     
            }
    	public Personnelhandeler(PersonnelService dataPersist){
    	      super();
    	      dataPt = dataPersist;
            }
     
    	public void characters(char[] ch, int start, int length)
    			throws SAXException {
    		// TODO Auto-generated method stub
    	}
     
    	public void endDocument() throws SAXException {
    		dataPt.save(per);
    	}
     
    	public void endElement(String uri, String localName, String qName)
    			throws SAXException {
    		 if(qName.equals("Personnel"))
    		 {inPers = false;
     
    		 }
    	}
     
    	public void endPrefixMapping(String prefix) throws SAXException {
    		// TODO Auto-generated method stub
    	}
     
    	public void ignorableWhitespace(char[] ch, int start, int length)
    			throws SAXException {
    		// TODO Auto-generated method stub
     
    	}
     
    	public void processingInstruction(String target, String data)
    			throws SAXException {
    		// TODO Auto-generated method stub
    	}
     
    	public void setDocumentLocator(Locator locator) {
    		// TODO Auto-generated method stub
    	}
     
    	public void skippedEntity(String name) throws SAXException {
    		// TODO Auto-generated method stub
    	}
     
    	public void startDocument() throws SAXException {
    		per=new Personnel();
     
    		  System.out.println("Début du parsing");
    	}
     
    	public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
     
    		if(qName.equals("Personnel")){
    			inPers = true;
    			}
     
    			else
        	    if(qName.equals("nom")){
         		      name = atts.getValue("nom");
         		      per.setNom(name);
     
                  }
         	else if(qName.equals("lastname")){
         		  name = atts.getValue("lastname");
         		  per.setPrenom(name);
         		}
         	else if (qName.equals("login")){
         			name = atts.getValue("login");
         			per.setLogin(name);
     
         		}
         	else if (qName.equals("password")){
     
         			name = atts.getValue("password");   
         			per.setPassword(name);
         		}
         	else if (qName.equals("pers_droit")){
     
         			name = atts.getValue("pers_droit");
         			per.setPers_droit(name);
         		}
    	}
     
    	public void startPrefixMapping(String prefix, String uri)
    			throws SAXException {
    		// TODO Auto-generated method stub
    	}
    }
    Partie présentation:
    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
    <%@taglib uri="http://richfaces.org/a4j" prefix="a4j"%><%@taglib
    	uri="http://richfaces.ajax4jsf.org/rich" prefix="richfaces"%><%@taglib
    	uri="http://java.sun.com/jstl/xml" prefix="x"%>
    <%@taglib uri="http://richfaces.org/rich" prefix="rich"%>
    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
    <%@ page import="javax.xml.parsers.SAXParserFactory,
                     javax.xml.parsers.SAXParser"
    %>
    <%@ page import="dao.Personnelhandeler" %>
    <%@ page import ="java.io.*, javax.xml.parsers.*,org.w3c.dom.*,
    org.xml.sax.*,
    javax.xml.transform.*,
    javax.xml.transform.dom.DOMSource,
    javax.xml.transform.stream.StreamResult"%>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <f:view>
    <h:form >
     
    <input type="file"  value="parcourir" name="fichier" >
     
    <input type="submit" id="idButton" name="ajouter" value="Ajouter" tabindex="50"/>
     
    <% 
    SAXParserFactory fabrique = SAXParserFactory.newInstance();
    fabrique.setValidating(true);
    SAXParser parseur = fabrique.newSAXParser();
    Personnelhandeler gestionnaire = new Personnelhandeler();
    String leChemin = (String) request.getParameter("fichier");
    parseur.parse(leChemin,gestionnaire);
    %>
     
    </h:form>
      </f:view>
    </body>
    </html>
    J'ai une eureur dans la partie présentation
    The method parse(String, HandlerBase) in the type SAXParser is not applicable for the
    arguments (String, Personnelhandeler)
    Quelqu'un peut-il m'expliquer d'où vient le problème ?

    Merci d'avance pour votre aide.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Non, c'est pas cette partie du code qui te fait cette erreur.

    ("fichier",gestionnaire) n'est pas un (String, String), ce n'est donc pas de ça que le compilateur se plaint.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [SimpleXML] Parser un flux xml avec SimpleXMLElement
    Par DeezerD dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 22/11/2006, 18h07
  2. [C#] Comment parser un flux XML ?
    Par Dunkan dans le forum C#
    Réponses: 1
    Dernier message: 22/09/2006, 13h32
  3. Parser un flux XML
    Par Paulux1 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 31/07/2006, 09h07
  4. parser un flux xml provenant d'une anim flash
    Par pyd001 dans le forum Langage
    Réponses: 3
    Dernier message: 11/07/2006, 10h43

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