[PHP/XML] Problème pour trouver le code PHP à partir du code VBS

Problème pour trouver le code PHP à partir du code VBS [PHP/XML] - PHP - Programmation

Marsh Posté le 15-07-2009 à 15:35:08    

Bonjour,
 
Je travail actuelement sur un script VBS  
 

Code :
  1. <script type="text/vbscript">
  2. set xmlDoc=CreateObject("Microsoft.XMLDOM" )
  3. xmlDoc.async="false"
  4. pathFile="host/<?echo strtolower($_GET['machineSelect']); ?>/starttimeXml.xml"
  5. xmlDoc.load(pathFile)
  6. i=1
  7. For each x in xmlDoc.documentElement.childNodes
  8.    for each y in x.childNodes
  9.     if y.nodename="VALUE1" then
  10.              document.write(y.text)
  11.     end if
  12.     next
  13. next
  14. </script>


 
 
Je doit le retranscrire en PHP. Seulement voila j'ai beau tester plein de choses ça ne marche pas....
Un petit exemple de ce que j'ai fait (mais qui ne marche pas)
 

Code :
  1. <?php
  2.  
  3. $document_xml = new DomDocument();
  4. $resultat_html = '';
  5.  
  6. $document_xml->load('host/'.$_GET['machineSelect'].'/starttimeXml.xml');
  7.  
  8. $elements = $document_xml->getElementsByTagName('VALUE1');
  9. $premier_element_liste = $liste_dom->item(0);
  10. $enfants = $elements->childNodes;
  11.  
  12. Foreach($enfants as $enfant)
  13. {
  14.     $nom = $enfant->nodeName;
  15.     
  16.     if ($nom == 'VALUE1')
  17.     {
  18.         echo $enfants->nodeValue;
  19.     }
  20. }
  21. ?>


 
Quelqu'un aurait une idée du code PHP?
 Merci!
 
 
Edit : Voila j'ai mis les balises [code], et mi mon code PHP complet, par contre le titre je ne voi pas quoi mettre de vraiment explicite :(
Merci pour ton aide.


Message édité par ananda5 le 15-07-2009 à 16:15:32
Reply

Marsh Posté le 15-07-2009 à 15:35:08   

Reply

Marsh Posté le 15-07-2009 à 15:42:10    

1-Change ton titre, il n'est pas du tout explicite
2-entoure ton premier code des balises [ code=vbs][/code] et le deuxième code des balises [ code=php][/code] (sans les espaces bien entendu) pour la coloration syntaxique.
3-Si tu as des messages d'erreurs c'est mieux de les préciser.
 
Bon, déjà, tu as une balise <code> en plein milieu de ton code PHP. PHP ne va pas comprendre ce que çà veut dire et ne va pas réussir à parser ton code -> parse error.
Est-ce ton code complet ? parce qu'il manque beaucoup de choses [:sadnoir].
Dès que tu auras pris en compte toutes ces remarques je pourrais t'aider ;)

Reply

Marsh Posté le 17-07-2009 à 08:21:56    

merci :)
mais là en lisant ton code je ne vois pas directement ce qui cloche :o
Tu as un message d'erreur, ou c'est juste l'affichage qui ne se fait pas comme tu le souhaites ?

Reply

Marsh Posté le 17-07-2009 à 09:32:19    

J'ai plusieurs messages d'erreurs :  
Notice: Undefined index: machineSelect in C:\Users\Shuyun\Documents\wamp\www\TestPhp\xml1.php on line 7
 
Warning: DOMDocument::load() [domdocument.load]: I/O warning : failed to load external entity "file:///C:/Users/Shuyun/Documents/wamp/www/TestPhp/host/starttimeXml.xml" in C:\Users\Shuyun\Documents\wamp\www\TestPhp\xml1.php on line 7
 
Notice: Undefined variable: liste_dom in C:\Users\Shuyun\Documents\wamp\www\TestPhp\xml1.php on line 11
 
Fatal error: Call to a member function item() on a non-object in C:\Users\Shuyun\Documents\wamp\www\TestPhp\xml1.php on line 11
 
 
Je comprend pas tout :(

Reply

Marsh Posté le 17-07-2009 à 10:18:03    

Déjà il faut setter $_GET['machineSelect'] si tu veux l'utiliser.
Pareil pour $liste_dom, tu essaye de lire cette variable alors qu'elle n'existe pas.
Les autres erreurs (warning et fatal error) découlent des variables non initialisées.

Reply

Marsh Posté le 17-07-2009 à 10:36:17    

tu entend quoi par setter?

Reply

Marsh Posté le 17-07-2009 à 10:40:37    

ah désolé :D
initialiser, donne une valeur quoi.
pour initialiser $_GET['machineSelect'] il faut ajouter :  
?machineSelect=valeur
à l'URL (en remplaçant valeur par la valeur souhaitée).
Quoi qu'il en soit tu devrais vérifier que machineSelect soit "settée" avant de l'utiliser et si ce n'est pas le cas, afficher un message d'erreur ou utiliser une valeur par défaut ;)

Reply

Marsh Posté le 17-07-2009 à 13:42:42    

Voilou quelques corrections dont l'url, seulement une erreur persiste  :  
 
 
Fatal error: Call to a member function item() on a non-object in C:\Users\Shuyun\Documents\wamp\www\TestPhp\xml1.php on line 7
 
 

Code :
  1. <?php
  2.  
  3. $document_xml = new DomDocument();
  4. $resultat_html = '';
  5. $document_xml->load('starttimeXml.xml');
  6. $elements = $document_xml->getElementsByTagName('VALUE1');
  7. $premier_element_liste = $_GET['liste_dom']->item(0);
  8. $enfants = $elements->childNodes;
  9.  
  10. Foreach($enfants as $enfant)
  11.  
  12. {
  13.    $nom = $enfant->nodeName;
  14.  
  15.  
  16.         if ($nom == 'VALUE1')
  17.         
  18.         {
  19.             echo $enfants->nodeValue;
  20.         }
  21. }


Message édité par ananda5 le 17-07-2009 à 14:39:10
Reply

Marsh Posté le 17-07-2009 à 14:42:29    

Tu m'as donné le code entier ?
Apparemment il ne correspond pas aux messages d'erreurs et il manque un "/" dans le message d'erreur warning.
EDIT :  :pt1cable:


Message édité par Profil supprimé le 17-07-2009 à 14:44:02
Reply

Marsh Posté le 17-07-2009 à 14:44:53    

"$_GET['liste_dom']" est une chaine de caractère, pas un objet.
Que contient $_GET['liste_dom'] ?  
Que veux tu faire avec ?

Reply

Marsh Posté le 17-07-2009 à 14:44:53   

Reply

Marsh Posté le 17-07-2009 à 14:51:35    

Je t'avoue que je ne sais pas, je veux juste récupérer les valeurs entre les balises VALUE1, mais sa me pose pas mal de problèmes... Cette ligne serait-elle de trop?

Reply

Marsh Posté le 17-07-2009 à 14:59:08    

oui

Reply

Marsh Posté le 17-07-2009 à 15:07:50    

Je l'ai supprimer :
 
Notice: Undefined property: DOMNodeList::$childNodes in C:\Users\Shuyun\Documents\wamp\www\TestPhp\xml1.php on line 8
 
Warning: Invalid argument supplied for foreach() in C:\Users\Shuyun\Documents\wamp\www\TestPhp\xml1.php on line 10
 
 
Plus que deux : o


Message édité par ananda5 le 17-07-2009 à 15:08:10
Reply

Marsh Posté le 17-07-2009 à 18:10:44    

je ne m'y connais pas plus que çà en DOM, alors essaye de fouiller dans la doc (php.net/dom) pour trouver ce que tu cherches ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed