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

Bibliothèques et frameworks PHP Discussion :

[XML] Lire un OBJET dans un OBJET dans un ARRAY


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 57
    Points : 31
    Points
    31
    Par défaut [XML] Lire un OBJET dans un OBJET dans un ARRAY
    Bonjour à tous les lecteurs de ce post !

    Voilà je m’entraîne à lire les information d'un webservice "http://footballpool.dataaccess.eu/data/info.wso?wsdl" via php.

    J'arrive à lire un objet simple mais dès lors qu'il y a un autre objet dans cet objet je n'arrive pas à accéder à ses informations.

    voilà le bout du wdsl qu'il m'intéresse de lire :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <xs:complexType name="tTopSelectedGoalScorer">
    <xs:sequence>
    <xs:element name="sName" type="xs:string"/>
    <xs:element name="iSelected" type="xs:int"/>
    <xs:element name="Countries" type="tns:ArrayOftCountrySelectedTopScorer"/>
    </xs:sequence>
    </xs:complexType>

    dedans je veux lire "Countries" qui lui contient un array ici présent :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xs:complexType name="tCountrySelectedTopScorer">
    <xs:sequence>
    <xs:element name="sName" type="xs:string"/>
    <xs:element name="iCount" type="xs:int"/>
    </xs:sequence>
    </xs:complexType>

    Lors que je fais ceci
    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
    $topn = 2;
     
    $result3 = $client->TopSelectedGoalScorers(array('iTopN' => $topn ));
      // Note that $array contains the result of the traversed object structure
      $array3 = $result3->TopSelectedGoalScorersResult->tTopSelectedGoalScorer;
     
      print_r($array3);
     
     
      print "
        <table border='2'>
          <tr>
            <th>Rank</th>
            <th>Name</th>
            <th>Selected</th>
    		<th>Countries</th>
          </tr>
      ";
     
      foreach($array3 as $key1=>$value2){
     
     
        print "
          <tr>
            <td align='right'>" . ($key1+1) . "</td>
              <td>" . $value2->sName . "</td>
              <td align='right'>" . $value2->iSelected . "</td>
    		  <td align='right'>" . $value2->sName . "</td>
            </tr>";
     
      }
     
     
     
     
      print "</table><br/>";
    J'obtient ceci "
    Array ( [0] => stdClass Object ( [sName] => Mario Gómez [iSelected] => 31 [Countries] => stdClass Object ( [tCountrySelectedTopScorer] => Array ( [0] => stdClass Object ( [sName] => Australia [iCount] => 1 ) [1] => stdClass Object ( [sName] => Brazil [iCount] => 2 ) [2] => stdClass Object ( [sName] => Denmark [iCount] => 1 ) [3] => stdClass Object ( [sName] => England [iCount] => 1 ) [4] => stdClass Object ( [sName] => Germany [iCount] => 3 ) [5] => stdClass Object ( [sName] => Hungary [iCount] => 2 ) [6] => stdClass Object ( [sName] => Jordan [iCount] => 1 ) [7] => stdClass Object ( [sName] => Netherlands [iCount] => 11 ) [8] => stdClass Object ( [sName] => Peru [iCount] => 1 ) [9] => stdClass Object ( [sName] => Spain [iCount] => 3 ) [10] => stdClass Object ( [sName] => Sweden [iCount] => 4 ) [11] => stdClass Object ( [sName] => United Kingdom [iCount] => 1 ) ) ) ) [1] => stdClass Object ( [sName] => Cristiano Ronaldo [iSelected] => 23 [Countries] => stdClass Object ( [tCountrySelectedTopScorer] => Array ( [0] => stdClass Object ( [sName] => Austria [iCount] => 1 ) [1] => stdClass Object ( [sName] => Belgium [iCount] => 1 ) [2] => stdClass Object ( [sName] => Brazil [iCount] => 5 ) [3] => stdClass Object ( [sName] => Denmark [iCount] => 5 ) [4] => stdClass Object ( [sName] => Germany [iCount] => 2 ) [5] => stdClass Object ( [sName] => Netherlands [iCount] => 2 ) [6] => stdClass Object ( [sName] => Sweden [iCount] => 4 ) [7] => stdClass Object ( [sName] => United States [iCount] => 3 ) ) ) ) ) "

    Je n'arrive pas à lire
    [Countries] => stdClass Object ( [tCountrySelectedTopScorer] => Array ( [0] => stdClass Object ( [sName] => Australia [iCount] => 1 )
    Merci de votre attention

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 114
    Points : 185
    Points
    185
    Par défaut
    Normalement c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $value2->Countries->tCountrySelectedTopScorer[0]->sName;

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    C'est tout à fais ça pour lire une seul ligne merci !
    Mais pour afficher tous les pays et tous les but pour un seul joueur ?

    Il faut refaire une boucle foreach je pense mais sous quelle forme ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    J’essaie de faire des boucles de ce type mais sans succès
    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
    foreach($array3 as $key1=>$value2)
    {	  
        print "
          <tr>
            <td align='right'>" . ($key1+1) . "</td>
              <td>" . $value2->sName . "</td>
              <td align='right'>" . $value2->iSelected . "</td>
    		  <td align='right'>" . $value2->Countries->tCountrySelectedTopScorer[$i]->sName . "</td>
    		  <td align='right'>" . $value2->Countries->tCountrySelectedTopScorer[$i]->iCount . "</td>
            </tr>";
     
        foreach($value2->Countries->tCountrySelectedTopScorer[$i] as $player_goal){
            echo $player_goal->sName;
        }
        $i++;
    }

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    ok j'ai trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach($value2->Countries->tCountrySelectedTopScorer as $countries )
    {
        echo 
            "<tr>
                <td>". $countries->sName."<br/></td>
                <td align='right'>" . $countries->iCount . "</td>
            </tr>";
    }
    avec cette boucle je peux afficher ce que je veux. Merci.

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

Discussions similaires

  1. Lire un Objet dans un fichier JSON
    Par Francisco22 dans le forum Général Python
    Réponses: 3
    Dernier message: 19/03/2016, 16h00
  2. Lire stdClass imbriqué dans un Array
    Par gunxi3 dans le forum Langage
    Réponses: 6
    Dernier message: 09/10/2015, 17h04
  3. Réponses: 0
    Dernier message: 27/08/2012, 12h21
  4. Ecrire et Lire des objets dans un fichier
    Par nnj46 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/04/2010, 15h43
  5. [DOM] Java XML Struts et ecriture dans objet response
    Par Tanebisse dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 16/10/2009, 12h36

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