Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOMXML
DOMXML Forum d'entraide pour l'extension DOMXML permettant de manipuler des documents XML en PHP 4 (approche DOM). Avant de poster -> tutoriels DOMXML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/02/2007, 14h07   #1
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 107
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 107
Points : 26
Points : 26
Par défaut [DOMXML] Récupérer un élément

Bonjour à tous!
Débutant en php je dois récupérer un élément d'un fichier xml.
Je me suis donc renseigné sur la question et j'ai trouvé pas mal de chose et des morceaux de code assez compréhensible! Donc jusque là tout va bien me direz-vous!
Cependant quand j'essaye d'affiché ma page j'ai le message suivant :
Citation:
Fatal error: Call to undefined function: domxml_open_file() in c:\program files\easyphp1-8\www\recherche.php4 on line 4
Mon code est le suivant :
Code :
1
2
3
4
5
 
$file = "monfichier.xml";
if(!$dom = domxml_open_file($file)) {
    die("Erreur lors de l'analyse du document\n");
}
J'ai la version PHP 4.3.10 et je ne sais pas si il me manque une bibliothèque...
Merci d'avance
goddet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2007, 15h29   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Il vous manque très probablement une ligne de ce style dans votre fichier php.ini :
Code :
extension=php_domxml.dll
Vu que vous utilisez EasyPHP, vous devez éditer le fichier C:\Program Files\easyphp1-8\conf_files\php.ini puis redémarrer le serveur Apache (ou EasyPHP ça marche aussi mais il redémarre également MySQL).


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2007, 15h43   #3
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 107
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 107
Points : 26
Points : 26
Merci pour cette réponse!
J'avais déja décomenté cette ligne mais dans le fichier php.ini de C:\Program Files\EasyPHP1-8\php
Je n'avais pas percuté que le fichier a modifier était dans conf_files!
Une autre question car je galère un peu!!!
Je suis désolé de demandé ça surtout que j'ai lu pas mal de post qui parlait de ça déja mais je ne comprend vraiment pas mon erreur!
J'ai ce code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<?php
// Fichier à analyser
$file = "monfichier.xml";
if(!$dom = domxml_open_file($file)) {
    die("Erreur lors de l'analyse du document\n");
}
$dossier = $dom->document_element();
$patient = $dom->attributes();
 
echo 'Attributs de ' . $patient->node_name() . "\n";
foreach ($patient as $attribute) {
     echo ' - ' . $attribute->name . ' : ' . $attribute->value . "\n";
}
?>
Et mon fichier xml :
Code xml :
1
2
3
4
5
6
7
8
9
10
 
<dossier>
    <patient>
        <numero_dossier>58</numero_dossier>
        <date>27/02/07</date>
        <heure>10:37:38</heure>
        <Nom>ARNAUD</Nom>
    </patient>
    .........
</dossier>
J'obtient cette erreur :
Citation:
Fatal error: Call to a member function on a non-object in c:\program files\easyphp1-8\www\recherche.php on line 13
Pourtant c'est un code qui vient de la doc php :
http://fr2.php.net/manual/fr/functio...bute-value.php
goddet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2007, 16h16   #4
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
Je ne suis pas tout à fait sûr de moi, mais je crois qu'à la place de faire $patient=$dom->attributes, il faut faire $patient->childNodes()
Tes patients ne sont aps des attributs mais des noeuds
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2007, 09h01   #5
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 107
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 107
Points : 26
Points : 26
J'ai essayé de remplacer la ligne :
Code :
$patient=$dom->attributes
par : Et cela ne change rien! Je suis un peu perdu! Il y a plein d'exemple sur la toile mais je n'arrive pas a faire ce que je souhaite!
En fait je voudrais juste récupérer la valeur de la balise <Nom> de mon fichier xml (dans mon cas "ARNAUD").
Si quelqu'un a un bout de code simple en php4 qui fonctionne je suis preneur!
Merci d'avance.
goddet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2007, 16h11   #6
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 107
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 107
Points : 26
Points : 26
Bon ce n'est pas grave je suis passé en php5 et avec : DOMDocument->getElementByTagName
ca marche mieux!
Merci quand même!
goddet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h37.


 
 
 
 
Partenaires

Hébergement Web