Pages : 1
#1 Le 23/10/2008, à 11: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, à 11:20)
Hors ligne
#2 Le 23/10/2008, à 12: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, à 12:32)
Hors ligne
#3 Le 23/10/2008, à 22: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
Hors ligne
#4 Le 27/10/2008, à 23:44
- MrWaloo
Re : petit problème avec un script PHP
$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 27/10/2008, à 23: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, à 00:00
- durthu
Re : petit problème avec un script PHP
merci beaucoup !!!
Hors ligne