Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/10/2008, à 12:18

durthu

petit problème avec un script PHP

bonjour,
je souhaiterai connaître la valeur d'un attribut dans un document xml ayant a peu près cette structure :

<question type="multichoice">
    <name><text>posologie</text>
</name>
    <questiontext format="html">
<text>quelle est la posologie du paracétamol ?</text>
    </questiontext>
    <answer fraction="0">
        <text>
90 mg/kg/j répartie en 6 prises
        </text>
    </answer>
      <answer fraction="100">
        <text>
60 mg/kg/j répartie en 4 prises
        </text>
    </answer>
      <answer fraction="0">
        <text>
30 mg/kg/j répartie en 4 prises
        </text>
    </answer>
</question>

je voudrais connaître le numéro de la réponse ayant l'attribut fraction supérieur à 0.
donc pour $xml->question->answer[$a]['fraction'] je voudrais connaitre la valeur de $a lorsque fraction > 0.
J'ai essayé ce code :

//je compte d'abord le nombre de réponse
$nbreponse = count($xml->question->answer);
for ($a=0, $a<=$nbreponse, $a ++)
     { if ($xml->question->answer[$a]['fraction'] > 0)
          { echo $a;}
     }

mais ca me donne toujours la valeur 0...
merci d'avance

Dernière modification par durthu (Le 23/10/2008, à 12:20)

Hors ligne

#2 Le 23/10/2008, à 13:32

Tonio

Re : petit problème avec un script PHP

$i = 0;
$res = array();
foreach( $xml->answer as $node )
{
  if ($node['fraction']>0) {
    $res[$i] = (string) $node->text;
  }
  $i++;
}
var_dump($res);

edit: balise..

Dernière modification par Tonio (Le 23/10/2008, à 13:32)

Hors ligne

#3 Le 23/10/2008, à 23:20

durthu

Re : petit problème avec un script PHP

merci de ta reponse mais pourrais tu expliquer ton code car je ne comprends pas tout...
je suis en quelque sorte débutant tongue

Hors ligne

#4 Le 28/10/2008, à 00:44

MrWaloo

Re : petit problème avec un script PHP

Tonio a écrit :
$i = 0;
$res = array();
foreach( $xml->answer as $node ) // boucle sur tout les éléments "answer" dans le fichier xml (ouvert avec simplexML ?)
                                 // $node est la variable qui correspond à chaque occurence dans la boucle
{
  if ($node['fraction']>0) { // Si l'occurence a un attribut "fraction" dont la valeur est supérieure à 0 ( >0 )
    $res[$i] = (string) $node->text; // un tableau contient le contenu de l'entité "text" de l'occurence
  }
  $i++;
}
var_dump($res); // Affichage du contenu de la variable $res

Légèrement simplifié (mais chacun détaille les scripts comme il le veut, il faut adapter les scripts à la personne qui doit les maintenir)

foreach ($xml->answer as $node){
  if ($node['fraction'] > 0) $res[] = (string) $node->text;
}
foreach ($res as $text_res){
  ...
  Traitement sur les réponses en prenant $text_res comme variable des "text" que tu veux isoler
  ...
}

Dernière modification par MrWaloo (Le 28/10/2008, à 00:45)


"De tous ceux qui n'ont rien à dire, les plus agréables sont ceux qui se taisent !!" (Desproges)
UNIX is an operating system, OS/2 is half an operating system, Windows is a shell, MS-DOS is a boot sector virus.

Hors ligne

#5 Le 28/10/2008, à 01:00

durthu

Re : petit problème avec un script PHP

merci beaucoup !!!

Hors ligne