Probléme avec extraction de donnée d'un fichier XML

iHoss Messages postés 12 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 29 mars 2007 - 28 mars 2007 à 10:20
iHoss Messages postés 12 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 29 mars 2007 - 29 mars 2007 à 09:20
Bonjour à tous,

C'est probablement un probléme de rien du tout, c'est que je débute avec l'utilisation des fichiers XML...
 
Alors voilà,
J'ai des fichiers XML que je génére par php : ils sont structurés (ils comprennent des questions et des réponses relatives à ces questions), bien entendu, leur nombre varit d'un fichier à un autre...

Et dans une seconde phase, je dois extraire ces données pour les utiliser dans des formulaires...

J'utilise fopen :





<?php
$handle = fopen ("nom_du_fichier.xml", "r");
$string ="";
while (false !($char fgetc($handle))) {
   $xml = "char\n";
   echo $xml;
   $string = $string.$xml;
}
...
fclose ($handle);
?>
 

Alors que ce soit dans $string ou $xml (ce qui est affiché caractere par caractere), je perd les espaces qui sont dans le texte (les données qui sont entre les balises)  ; et j'ai besoin de les avoir telles qu'ils sont.

Merci d'avance pour votre aide.

4 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 10
28 mars 2007 à 10:59
Salut....

Mais, mais c'est pas beau ce que tu fais !

Pourquoi avoir un fichier XML, de belles librairies XML dans PHP (DOMXML pour le 4, DOM pour le 5, ... et d'autres) et ouvrir ton fichier comme un vulgaire fichier texte ???

Fait en PHP5:
$doc = new DomDocument();
$doc->load('ficher.xml');
echo $doc->saveXML();

Pour afficher ton fichier...
et d'autres trucs de fou pour en changer le contenu (XSL) trouver des noeuds particulier (Xpath) ... blabla

A+
0
iHoss Messages postés 12 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 29 mars 2007
28 mars 2007 à 11:09
Salut,

   J'utilise PHP4, j'ai essayé une source avec DOMXML et ca n'a pas marché (les fonctions domxml : j'obtiens un msg de "call of undefined function") ; j'ai pourtant verifier qu'elle étaient enabled mais ca marche pas comme meme.

Sinon, je me suis débrouillé mais comme tu l'as dit, moi aussi ca ne me plait pas beaucoup de les traiter ainsi.

Alors, ca serai gentil si tu me suggerai comment faire avec PHP4 (EasyPHP).

Merci à toi 
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
28 mars 2007 à 11:33
Si t'as pas la DOMXML ni PHP5

Tu peux essayer avec ça (pas très facile d'utilisation) si c'est installé :
http://www.php.net/manual/fr/function.xml-parse-into-struct.php

Ou installer une librairie PEAR ou PECL :
http://www.php.net/results.php?q=XML&l=fr&p=pear
http://www.php.net/results.php?q=XML&l=fr&p=pecl

Ou changer d'hébergement !

Sinon... pour le problème de fopen :
<?php
$handle = fopen ("nom_du_fichier.xml", "r");

if ( !$handle ) trigger_error("Impossible d'ouvrir le fichier XML",E_USER_ERROR);

$string ="";

while ( ! feof($handler) ) {
   $line = fgets($handler);
   echo $line;
   $string.= $line;
}
...
fclose ($handle);
?>
 

OU http://de3.php.net/manual/en/function.file-get-contents.php

<?php
$string = file_get_contents('fichier.xml');
?>
0
iHoss Messages postés 12 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 29 mars 2007
29 mars 2007 à 09:20
Merci beaucoup J_G,                          

Pour les librairies à télécharger, je trouve pas! Tu n'aurais pas un lien direct pour télécharger?
Sinon, je vais essayer avec "xml_parse_into_struct", je pense que ca ira...

Merci bcp et bonne journée.
0
Rejoignez-nous