Résolu Appel a un fichier XML avec php 4

Solutions (13)
Tags :
  • Xml
  • Mot de passe
  • Php
  • Programmation
|
Bonjour,
comment faire pour utiliser des information qui se trouve dans une fichier Xml avec le script PHP4 et merci d'avance
Contenus similaires
Meilleure solution
partage
|
Je me suis planté dans les noms ... Tu t'aides jamais de google ?
Tu aurais trouvé (c'est ce que je viens de faire) !


  1. <?php
  2.  
  3. // open the XML-file and catch error
  4. if ( !$dom = domxml_open_file( realpath("copie_XML.xml") ) )
  5. {
  6. echo "Error while parsing the document\n";
  7. exit;
  8. }
  9.  
  10. // get the root element
  11. $root = $dom->document_element();
  12. // get the list of the nodes
  13. $nodes = $root->child_nodes();
  14.  
  15. // For all child :
  16. foreach($nodes as $node)
  17. {
  18. if ( $node->node_name() == "mot_de_passe" )
  19. {
  20. $passe = $node->get_content();
  21. } else if( $node->node_name() == "utilisateur" )
  22. {
  23. $utilisateur = $node->get_content();
  24. } else if( $node->node_name() == "serveur" )
  25. {
  26. $serveur = $node->get_content();
  27. } else if( $node->node_name() == "base3" )
  28. {
  29. $base3 = $node->get_content();
  30. }
  31. }
  32. ?>


J'ai changé pas mal de chose, tout ça provenant des manuels de PHP : ICI (< clic).
  • Commenter cette solution |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par Ben_2010.
  • Commenter cette réponse |
Score
0
òh
òi
|
Vraiment merci pour ton aide :) ))))
  • Commenter cette réponse |
Score
0
òh
òi
|
désolé le meme message d'erreur a été affiché voila le message :

Notice: Undefined property: name in d:\easyphp\easyphp1-8\www\comnet2010\generateur\index.php on line 13

Notice: Undefined property: name in d:\easyphp\easyphp1-8\www\comnet2010\generateur\index.php on line 16

Notice: Undefined property: name in d:\easyphp\easyphp1-8\www\comnet2010\generateur\index.php on line 19

Notice: Undefined property: name in d:\easyphp\easyphp1-8\www\comnet2010\generateur\index.php on line 22


et apparemment la fonction domxml_children($doc_xml) n'a pas li car normalement le couleur des fonction devient bleu mais cette fonction reste noire
et désolé une autre fois
  • Commenter cette réponse |
Score
0
òh
òi
|
En même temps je t'avais donnée un exemple, tu n'y as rien compris apparemment ...

On reprend :

  1. $doc_xml = xmldocfile( realpath("copie_XML.xml" ) );
  2. $noeuds_enfants = domxml_children($doc_xml);
  3.  
  4. for ($i = 0; $i < sizeof($noeuds_enfants); $i++)
  5. {
  6. if( $noeuds_enfants[$i]->name == "mot_de_passe" )
  7. {
  8. $passe = $noeuds_enfants[$i]->content;
  9. } else if( $noeuds_enfants[$i]->name == "utilisateur" )
  10. {
  11. $utilisateur = $noeuds_enfants[$i]->content;
  12. } else if( $noeuds_enfants[$i]->name == "serveur" )
  13. {
  14. $serveur = $noeuds_enfants[$i]->content;
  15. } else if( $noeuds_enfants[$i]->name == "base3" )
  16. {
  17. $base3 = $noeuds_enfants[$i]->content;
  18. }
  19. }


Après faudra vérifier que tes variables existent et tout ...
  • Commenter cette réponse |
Score
0
òh
òi
|
c'est bon cette code exécutable merci mais il na pas accepté cette code :

$passe=$doc_xml->mot_de_passe;
$utilisateur=$doc_xml->utilisateur;
$serveur=$doc_xml->serveur;
$base2=$doc_xml->base3;

pas tout le code mais les mot mot_de_passe ,utilisateur , serveur , base3 qui sont des balises dans la fichier XML contenant les données nécessaire
voila le code dans la fichier XML :

<?xml version="1.0" encoding="iso-8859-1"?>
<base_donnee>
<mot_de_passe></mot_de_passe>
<utilisateur>root</utilisateur>
<serveur>localhost</serveur>
<base3>comnet2010</base3>
</base_donnee>

et merci merci merci d'avance :) ))))
  • Commenter cette réponse |
Score
0
òh
òi
|
Essaye avec :

  1. $doc_xml = xmldocfile( realpath("copie_XML.xml") );
  • Commenter cette réponse |
Score
0
òh
òi
|
oui ils ont en même répertoire
  • Commenter cette réponse |
Score
0
òh
òi
|
Il n'arrive pas à charger le fichier, celui-ci est au même endroit que le script ? Vérifie le chemin !
  • Commenter cette réponse |
Score
0
òh
òi
|
Bonjour,
cette problème d'extension est résolu merci mais maintenant j'ai un autre problème moi j'ai crée une fichier xml pour mettre de dans des données que je vais utiliser après , alors j'ai crée une autre fichier PHP pour faire appel a ces données et les mettre dans des variables .
Voila le code que j'ai écrit :

  1. $doc_xml = xmldocfile("copie_XML.xml");
  2.  
  3. // retourne le nom de l'objet DOMDocument
  4. $passe=$doc_xml->mot_de_passe;
  5. $utilisateur=$doc_xml->utilisateur;
  6. $serveur=$doc_xml->serveur;
  7. $base2=$doc_xml->base3;




et Voila le message d'erreur:

Warning: xmldocfile(): I/O in d:\easyphp\easyphp1-8\www\comnet2010\generateur\index.php on line 8

Warning: xmldocfile(): warning : in d:\easyphp\easyphp1-8\www\comnet2010\generateur\index.php on line 8

Warning: xmldocfile(): failed to load external entity "copie_XML.xml" in d:\easyphp\easyphp1-8\www\comnet2010\generateur\index.php on line 8




et merci d'avance pour votre aide
  • Commenter cette réponse |
Score
0
òh
òi
|
Il est probable que le module XML ne soit pas installé ou activé ...

Dans "php.ini", cherche :

;extension=php_domxml.dll


et enlève le ";" au début !

Ensuite redémarre ton serveur ... Si ça ne marche pas, on verra ce qu'il peut manquer, mais normalement ça devrai aller !
  • Commenter cette réponse |
Score
0
òh
òi
|
lorsque j'ai utilisé cette cette code j'ai un erreur concerne cette fonction xmldocfile()
voila la phrase qui j'ai reçu :
Fatal error: Call to undefined function: xmldocfile() in d:\easyphp\easyphp1-8\www\comnet2010\generateur\index.php on line 8
  • Commenter cette réponse |
Score
0
òh
òi
|
Bonjour,

  1. $doc_xml = xmldocfile("\Chemin\DU\Fichier\XML.xml");
  2.  
  3. // Obtenir le noeud racine
  4. $noeud_racine = domxml_root($doc_xml);
  5.  
  6. // Obtenir les noeuds attributs
  7. $attributs = domxml_attributes($doc_xml);
  8.  
  9. // Obtenir les noeuds enfants
  10. $noeuds_enfants = domxml_children($doc_xml);
  11.  
  12. // retourne le nom de l'objet DOMDocument
  13. echo $doc_xml->name;
  14.  
  15. // retourne le type de l'objet DOMDocument
  16. echo $doc_xml->type;
  17.  
  18. // retourne le contenu textuel de l'objet DOMDocument
  19. $tab_enfants = $doc_xml->children;
  20. echo $tab_enfants[0]->content;
  21.  
  22.  
  23. //Chacune de ces méthodes et propriétés peut être appliquée à chaque noeud extrait du document XML.
  24. for ($i = 0; $i < sizeof($noeuds_enfants); $i++)
  25. {
  26. $type_noeud = $noeuds_enfants[$i]->type;
  27.  
  28. if ($type_noeud == XML_TEXT_NODE)
  29. echo '<h2>Contenu : ' . $noeuds_enfants[$i]->content . '<br>';
  30. else
  31. {
  32. $noeud = $noeuds_enfants[$j]->children;
  33. echo '<h2>Nom :' . $noeuds_enfants[$i]->name . '<br>';
  34.  
  35. if ($noeud[0]->type == XML_TEXT_NODE)
  36. echo 'Contenu : ' . $noeud[0]->content . '<br>';
  37. }
  38. echo 'Type : ' . $type_noeud . '</h2>';
  39.  
  40. if ($type_noeud == XML_ELEMENT_NODE)
  41. {
  42. $attributs = domxml_attributes($noeuds_enfants[$i]);
  43. echo '<h3>Les attributs du noeud '
  44. . $noeuds_enfants[$i]->name . '</h3>';
  45. for($j = 0; $j < sizeof($attributs); $j++)
  46. {
  47. $noeud_texte = $attributs[$j]->children;
  48. echo 'Nom :' . $attributs[$j]->name . '<br>'
  49. . 'Type : ' . $attributs[$j]->type . '<br>'
  50. . 'Contenu : ' . $noeud_texte[0]->content . '<br>';
  51. }
  52. }
  53. }



Ce n'est qu'un petit exemple ... A toi de l'utiliser convenablement !

Et tu peux aussi faire des requêtes XPath :

  1. $obj_contexte = xpath_new_context($dom_xml);
  2. $tab_resultat = xpath_eval($obj_contexte);


Voila, t'as tout !
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS