xml et php

Mammouth du PHP | 702 Messages

02 août 2012, 15:45

Bonjour à toutes et à tous, j'ai un soucis en fait avec un fichier xml, j'essai d'extraire ses informations afin de les exploiter, j'ai donc le code ci dessous:
<?php
 $chaineXML= 'tmp/'.$_GET['n_doss'].'.xml';
 $dom = new DomDocument();
 $dom->loadXML($chaineXML);
 $dom->validate();
 
?>
mais j'ai deux messages d'erreurs:
) Warning: DOMDocument::loadXML() [domdocument.loadxml]: Start tag expected, '<' not found in Entity, line: 1 in C:\wamp\www\NEOGETCASH\GESTIONNAIRE\DOSSIERS\creditsafe.php on line 27
Call Stack
# Time Memory Function Location
1 0.0027 534032 {main}( ) ..\creance.php:0
2 0.0095 617544 include( 'C:\wamp\www\NEOGETCASH\GESTIONNAIRE\DOSSIERS\left.php' ) ..\creance.php:273
3 0.0267 636520 include( 'C:\wamp\www\NEOGETCASH\GESTIONNAIRE\DOSSIERS\creditsafe.php' ) ..\left.php:284
4 6.9264 778704 DOMDocument->loadXML( ) ..\creditsafe.php:27

( ! ) Warning: DOMDocument::validate() [domdocument.validate]: no DTD found! in C:\wamp\www\NEOGETCASH\GESTIONNAIRE\DOSSIERS\creditsafe.php on line 28
Call Stack
# Time Memory Function Location
1 0.0027 534032 {main}( ) ..\creance.php:0
2 0.0095 617544 include( 'C:\wamp\www\NEOGETCASH\GESTIONNAIRE\DOSSIERS\left.php' ) ..\creance.php:273
3 0.0267 636520 include( 'C:\wamp\www\NEOGETCASH\GESTIONNAIRE\DOSSIERS\creditsafe.php' ) ..\left.php:284
4 6.9268 778976 DOMDocument->validate( ) ..\creditsafe.php:28
or j'ai pris toutes les dispositions nécessaires pour que mon fichier soit valide puisqu'il est généré par mon web service.

Je ne sais pas comment résoudre ces erreurs.

Si ca peut aider voici le code xml.
http://www.2shared.com/document/YZWT8rR ... 60012.html
par avance merci pour votre aide.
Modifié en dernier par piotrowski-s le 02 août 2012, 16:06, modifié 1 fois.

Eléphant du PHP | 53 Messages

02 août 2012, 15:53

Bonjour,

Les erreurs sont claires : tu a un '<' en erreur et pas de DTD dans ton XML.
Peut tu montrer le fichier XML ?

Cordialement.
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison.

Mammouth du PHP | 702 Messages

02 août 2012, 16:02

oui je l'ai mis plus haut, mais je redonne le lien comme il est assez volumineux c'est car il est généré par un webservice http://www.2shared.com/document/YZWT8rR ... 60012.html

Eléphant du PHP | 53 Messages

02 août 2012, 16:53

Rebonjour,

Bon je peut y accéder au boulot.
Est ce que tout est écrit a la suite ou tu à des saut de lignes ?

Pour la seconde erreur il te manque une balise de ce genre :

[xml] <?xml version="1.0" encoding="ISO-8859-1"?>
[/xml]

Cordialement.
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison.

Mammouth du PHP | 702 Messages

02 août 2012, 16:56

il y a des retours a la ligne
enfin c'est généré par le webservice, rien n'est écrit tout a coté.

et pour la balise fermante je met aussi les point d'interrogation?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 août 2012, 20:23

salut,

tu devrais regarder un poil mieux la doc :
http://fr.php.net/manual/fr/domdocument.loadxml.php

c'est une chaine "xml" qu'il faut passer à loadxml et toi tu donne un nom de fichier, qui donc ne sera pas bon :)

donc tu peux, par exemple faire
<?php
 $chaineXML= file_get_contents('tmp/'.$_GET['n_doss'].'.xml');
 $dom = new DomDocument();
 $dom->loadXML($chaineXML);
 $dom->validate();
?>
ou sinon utilise load

@+
Il en faut peu pour être heureux ......