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

XML/XSL et SOAP Discussion :

parser une réponse KSOAP


Sujet :

XML/XSL et SOAP

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 52
    Points
    52
    Par défaut parser une réponse KSOAP
    Bonjour,

    J'étais sur le forum d'android de développer.com et ils m'ont envoyé sur ce forum on me disant que ici il y a des experts :-) :-)
    En faite j'ai développé une application android qui appel des service web et j'utilise la librairie KSOAP pour les échanges des messages.

    je vous montre la réponse de service en format xml :
    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
     
    <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
       <soap-env:Header/>
       <soap-env:Body>
          <n0:Zmafonctionsws6Response xmlns:n0="urn:sap-com:document:sap:soap:functions:mc-style">
             <ReturnCode>0</ReturnCode>
             <WkList>
                <item>
                   <WiId>000000000000</WiId>
                   <WiType>a</WiType>
                   <WiCreator>a</WiCreator>
                   <WiLang>0</WiLang>
                   <WiText>a</WiText>
                   <WiRhtext>a</WiRhtext>
                   <WiCd>0000-00-00</WiCd>
                   <WiCt>00:00:00</WiCt>
                   <WiAagent>a</WiAagent>
                   <WiChckwi>000000000000</WiChckwi>
                   <WiRhTask>a</WiRhTask>
                   <WiPrio>0</WiPrio>
                   <WiConfirm>a</WiConfirm>
                   <WiReject>a</WiReject>
                   <WiForwBy>a</WiForwBy>
                   <WiDisable>a</WiDisable>
                   <Statustext>a</Statustext>
                   <WiStat>a</WiStat>
                   <WiLed>0000-00-00</WiLed>
                   <WiLet>00:00:00</WiLet>
                   <Typetext>a</Typetext>
                   <Tclass>a</Tclass>
                   <NoteExist>a</NoteExist>
                   <WiDhStat>0000</WiDhStat>
                   <Dhstatext>a</Dhstatext>
                   <NoExecute>a</NoExecute>
                   <WiRelease>a</WiRelease>
                   <WiCdFtd>a</WiCdFtd>
                   <WiCtFtd>a</WiCtFtd>
                   <WiLedFtd>a</WiLedFtd>
                   <WiLetFtd>a</WiLetFtd>
                   <WiAaName>a</WiAaName>
                   <DefGuid>a</DefGuid>
                   <WiCrtts>0.0</WiCrtts>
                   <NoteCount>0</NoteCount>
                   <WiCompEv>a</WiCompEv>
                   <Proccat>a</Proccat>
                </item>
                <item>
                   <WiId>000000863690</WiId>
                   <WiType>D</WiType>
                   <WiCreator>FLOWITEM  0000008636830000000048000000</WiCreator>
                   <WiLang>E</WiLang>
                   <WiText>Missed Deadline:Employee Mr. Charles Aaron : Approve notification of absence</WiText>
                   <WiRhtext/>
                   <WiCd>2010-07-28</WiCd>
                   <WiCt>13:43:17</WiCt>
                   <WiAagent/>
                   <WiChckwi>000000863684</WiChckwi>
                   <WiRhTask/>
                   <WiPrio>5</WiPrio>
                   <WiConfirm/>
                   <WiReject/>
                   <WiForwBy/>
                   <WiDisable/>
                   <Statustext>Ready</Statustext>
                   <WiStat>READY</WiStat>
                   <WiLed>0000-00-00</WiLed>
                   <WiLet>00:00:00</WiLet>
                   <Typetext>Missed Deadline</Typetext>
                   <Tclass/>
                   <NoteExist/>
                   <WiDhStat>8996</WiDhStat>
                   <Dhstatext>Latest start</Dhstatext>
                   <NoExecute/>
                   <WiRelease>700</WiRelease>
                   <WiCdFtd>28.07.2010</WiCdFtd>
                   <WiCtFtd>13:43:17</WiCtFtd>
                   <WiLedFtd>00.00.0000</WiLedFtd>
                   <WiLetFtd>00:00:00</WiLetFtd>
                   <WiAaName>No Agent Available</WiAaName>
                   <DefGuid>WS30000015    WS300000150009E0000000048S</DefGuid>
                   <WiCrtts>0.0</WiCrtts>
                   <NoteCount>0</NoteCount>
                   <WiCompEv/>
                   <Proccat/>
                </item>
    ..... ect
    mon but est de récupérer les information dans chaque attribut <item> pour l'instant j'arrive seulement a récupérer le premier item
    voici ma méthode :

    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
     
    public static String CallWS_listWorkitem (String nom)
    	{
    		Vector<String> rs =  new Vector<String> ();
    		String rss="initial";
    		try {
    			// Create SOAP request
     
    			SoapObject request = new SoapObject(NAMESPACE,"Zmafonctionsws6");
    			request.addProperty("Nom", nom);
    			request.addProperty("WkList", null);
    			request.addProperty("item", null);
    			request.addProperty("WiId", "000000000000");
    			request.addProperty("WiType", "a");
    			request.addProperty("WiCreator", "a");
    			request.addProperty("WiLang", "0");
    			request.addProperty("WiText", "a");
    			request.addProperty("WiRhtext", "a");
    			request.addProperty("WiCd", "0000-00-00");
    			request.addProperty("WiCt", "00:00:00");
    			request.addProperty("WiAagent", "a");
    			request.addProperty("WiChckwi", "0000");
    			request.addProperty("WiRhTask", "a");
    			request.addProperty("WiPrio", "0");
    			request.addProperty("WiConfirm", "a");
    			request.addProperty("WiReject", "a");
    			request.addProperty("WiForwBy", "a");
    			request.addProperty("WiDisable", "a");
    			request.addProperty("Statustext", "a");
    			request.addProperty("WiStat", "a");
    			request.addProperty("WiLed", "0000-00-00");
    			request.addProperty("WiLet", "00:00:00");
    			request.addProperty("Typetext", "a");
    			request.addProperty("Tclass", "a");
    			request.addProperty("NoteExist", "a");
    			request.addProperty("WiDhStat", "0000");
    			request.addProperty("Dhstatext", "a");
    			request.addProperty("NoExecute", "a");
    			request.addProperty("WiRelease", "a");
    			request.addProperty("WiCdFtd", "a");
    			request.addProperty("WiCtFtd", "a");
    			request.addProperty("WiLedFtd", "a");
    			request.addProperty("WiLetFtd", "a");
    			request.addProperty("WiAaName", "a");
    			request.addProperty("DefGuid", "a");
    			request.addProperty("WiCrtts", "0.0");
    			request.addProperty("NoteCount", "0");
    			request.addProperty("WiCompEv", "a");
    			request.addProperty("Proccat", "a");
     
     
    			SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    			envelope.setOutputSoapObject(request);
    			HttpTransportSE androidHttpTransport = new HttpTransportSE(URL2);
    			androidHttpTransport.call(SOAP_ACTION2, envelope);
    			SoapObject body = (SoapObject)envelope.bodyIn;
    			SoapObject sous_body = (SoapObject) body.getProperty("WkList");
    			SoapObject sous_body_item = (SoapObject) sous_body.getProperty("item");
     
     
     
    			//rs.addElement((String)body.getProperty("ReturnCode").toString());
     
    				rss+=(String)sous_body_item.getProperty("WiId").toString();
     
    		}
    		catch (Exception e) {
    			System.out.println("dans le catch du service web");
    			e.printStackTrace();
    		}
     
    		return rss;
    	}
    merci,

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 564
    Points : 21 629
    Points
    21 629
    Par défaut
    Je connais pas KSOAP, mais à première vue, quand tu appelles getProperty(String), il te renvoie que le premier élément de ce nom.

    Tu devrais pouvoir t'en sortir avec getProperty(int) pour demander les éléments par position et non pas par nom. getPropertyCount() te dira combien il y en a.
    Et pour déterminer si ce que tu lis est bien un <item>, il suffit d'appeler getName() dessus et de comparer.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    merci pour votre réponse

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

Discussions similaires

  1. Parser une réponse SOAP
    Par RAMIREZ13 dans le forum Android
    Réponses: 2
    Dernier message: 21/07/2011, 18h19
  2. Parser une réponse KSOAP
    Par lotfi-g dans le forum Android
    Réponses: 4
    Dernier message: 30/06/2011, 15h19
  3. [ORBEON]Parser une réponse SOAP
    Par DonKnacki dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 03/05/2010, 09h24
  4. [Web Service] Parser une réponse SOAP ARRAY
    Par vanmouniren dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 04/02/2010, 13h46
  5. [Ajax] Parser une réponse texte
    Par bleach1234 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 12/03/2009, 09h39

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