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 :

Probleme pour parser un xml


Sujet :

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

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 151
    Points
    151
    Par défaut Probleme pour parser un xml
    Bonjour,
    Je souhaiterai parser un xml et je recois l'erreur suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document element namespace mismatch expected
    Les noms des champs ne correpondent pas,
    pourtant, mon xsd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	<xs:element  name="DonneesPDC">
    		<xs:complexType>
    		    <xs:sequence>
    				<xs:element name="idpdc" type="xs:string"/>
    				<xs:element name="messageErreur" type="xs:string"/>
    			  	<xs:element name="operationValide" type="xs:boolean"/>
    			  	<xs:element name="dateEtHeure" type="xs:date"/>
    		    	<xs:element name="DonneeConsommation" type="tns:DonneeConsommation"/>
    		    	<xs:element name="DonneeConfiguration" type="tns:DonneeConfiguration"/>
    		    	<xs:element name="DonneeEtat" type="tns:DonneeEtat"/>
    		    </xs:sequence>   
    		</xs:complexType>
    	 </xs:element>
    et ce que je recupère de ma base de donnée
    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
    <message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="dat:Donnees">
              <DonneesPDC>
                <idpdc></idpdc>
                <messageErreur/>
                <operationValide/>
    	    <dateEtHeure/>
                <DonneeConsommation><LoadProfileEnergy>
                    <DateAndTime>01/12/2007 20:00:00</DateAndTime>
                    <Status>0</Status>
                    <SummaEnergy>491</SummaEnergy>
                  </LoadProfileEnergy></DonneeConsommation>
                <DonneeConfiguration />
                <DonneeEtat />
              </DonneesPDC>
            </message>
    et pour parser ca, je fais ca de 2 amnière differente:
    promprement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    InputStream stream = message.newInputStream();
    			InputStreamReader reader = new InputStreamReader(stream);			
    			DonneesPDCDocument donneesPDCdoc = DonneesPDCDocument.Factory.parse(reader);
     
     
    			DonneesPDC donneesPDC = donneesPDCdoc.getDonneesPDC();
    avec message le xmlobject a parser
    ou crados
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    XmlCursor cursor = message.newCursor();
    			cursor.toFirstChild();
    			String c1 = cursor.xmlText();
    			System.out.println("message"+c1);
    			DonneesPDCDocument donneesPDCdoc = DonneesPDCDocument.Factory.parse(c1);
    			DonneesPDC donneesPDC = donneesPDCdoc.getDonneesPDC();
    est ce que quelqu'un peut y voir plus clair que moi
    Merce

  2. #2
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Points : 272
    Points
    272
    Par défaut
    je ne sais pas si ça va t'aider mais pour parser du xml j'utilise la librairie JDOM, ce qui donne pour mon parseur :
    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
     
    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.input.SAXBuilder;
    import org.xml.sax.InputSource;
     
    public class ParseurXML
    {
    	private Document dom;
     
    	public ParseurXML(String input)
    	{
    		try
    		{
    			SAXBuilder builder = new SAXBuilder(); 
    			this.dom = builder.build(new InputSource(new StringReader(input))); 
    		}
    		catch(Exception e)
    		{}
    	}
             ..
    }
    ensuite tu peux facilement récupérer tes éléments avec les méthodes de jdom à savoir getRootElement, getChild, etc...
    Il te reste à le modifier pour avoir non plus en entrée un String mais ce que tu souhaites.

Discussions similaires

  1. [SimpleXML] probleme pour parser un fichier XML
    Par gilles974 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 27/03/2008, 10h01
  2. Probleme pour parser une String en Date
    Par DrTank dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2007, 19h19
  3. [Java] probleme pour transformer un XML
    Par anassimo dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 24/07/2006, 17h30
  4. [Ajax] probleme pour parser une reponse
    Par zola dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 04/05/2006, 17h35
  5. [SAX] Probleme pour parser un fichier
    Par aymron dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 25/11/2005, 15h48

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