Problème xml

Résolu
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010 - 31 juil. 2007 à 18:43
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010 - 31 juil. 2007 à 20:18
Bonjour,
Je suis novice en php, et je ne comprends pas encore tout.
Je voudrais afficher "ok, je ne fait plus de bruit" quand $world = "silence"



<?xml version="1.0" encoding="ISO-8859-1" ?>
<contacts>
  <contact> silence <Out>ok, je ne fait plus de bruit</Out></contact>
  <contact>écoute<Out>je suis toutes ouies</Out></contact>
</contacts>


Le programme plante a la linge : echo $Out->firstChild->nodeValue . "
";
Donc, que dois je faire pour corriger cette erreur.
Merci beaucoup.
@+



<?php
function  openXML($File,$world)
{
  $dom = new DomDocument;
  $dom->load($File);
  $contact = $dom->getElementsByTagName('contact')->item(0);
  $listeContact = $contact->getElementsByTagName('In');
  foreach($listeContact as $In)
  {
    if($world==$In->firstChild->nodeValue)
 {

  echo $Out->firstChild->nodeValue . "
"; // Bup ICI!!!!
 }
  }
}
?>



<?php
   openXML("toto1.xml","silence");
?>

8 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
31 juil. 2007 à 20:05
Fait attention... Pour les besoins de mes tests, j'ai remplacé

$dom->load( ... );

par

$dom->loadXML( ... );

http://www.catb.org/%7Eesr/faqs/smart-questions.html
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 juil. 2007 à 18:54
Hello,

ben tu m'étonnes :
 echo $Out->firstChild->nodeValue . "
"; // Bup ICI!!!!
=>
echo $In->firstChild->nodeValue . "
";

$Out n'existe pas, tu parcours en mettant tes valeurs dans $In, pas $Out.
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
31 juil. 2007 à 19:06
Salut


Je suis d’accord avec toi,


Quand $world "silence", je veux afficher « ok, je ne fait plus de bruit »<?xml:namespace prefix o ns = "urn:schemas-microsoft-com:office:office" /??>


J'arrive a lire entre et je souhaite afficher  <Out> …</Out>



Comment déclaré $Out pour que ça fonctionne ?





Merci
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
31 juil. 2007 à 19:17
Salut,

ben c'est déjà pas mal si tu en es là... pour un débutant qui comprend pas tout ;)

Essaye un truc comme ça :

$xml = <<<XML
<?xml version="1.0" encoding="ISO-8859-1" ?>
<contacts>
  <contact> silence <Out>ok, je ne fait plus de bruit</Out></contact>
  <contact>écoute<Out>je suis toutes ouies</Out></contact>
</contacts>
XML;

$word = 'silence';

$dom = new DomDocument;
$dom->loadXML($xml);
$xpath = new DomXpath($dom);
$out = $xpath->query("/contacts/contact[In/text()='$word']/Out/text()")->item(0);
if ( $out ) echo $out->wholeText;
else echo '????';

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
31 juil. 2007 à 19:30
re


Débutant en php, pas en programmation en général.


J'ai réalisé une IA tout de même ICI. Je souhaite la refaire, pour que ça fonctionne sur le net à 100%


 


Merci, je vais essayer ton code


@+


 
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
31 juil. 2007 à 19:44
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
31 juil. 2007 à 19:45
Il n'y aurai pas une erreur pas hasard dans ton code, ou c'est moi ?


Ça ne fonctionne pas.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>



Peux tu regarder stp pourquoi





<?xml version="1.0" encoding="ISO-8859-1" ?>
<contacts>
  <contact> silence <Out>ok, je ne fait plus de bruit</Out></contact>
  <contact>écoute<Out>je suis toutes ouies</Out></contact>
</contacts>



<?php
$dom = new DomDocument;
$dom->loadXML("toto1.xml");
$xpath = new DomXpath($dom);
$out = $xpath->query("/contacts/contact[In/text()='silence']/Out/text()")->item(0);
if ( $out ) echo $out->wholeText;
?>

merci
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
31 juil. 2007 à 20:18
ha oui,
Merci beaucoup.
0
Rejoignez-nous