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 20/02/2007, 12h28   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2003
Messages : 26
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 26
Points : 13
Points : 13
Envoyer un message via MSN à philippejuju
Par défaut [DOMXML] Validation XSD en PHP 4 et DOM_XML

Bonjour à tous
Voila j'ai un beau fichier XML qui peut aller jusqu'à 20 Méga, il me faut avant de l'insérer en base, faire une validation via un schéma XSD qui m'est fourni.
Mes diverses recherches m'ont montré que en PHP 4 même avec DOM_XML cela n'est pas possible. Je voudrais savoir si je me trompe ?
Sinon une validation DTD se fait de quel manière si le fichier dtd dans un autre répertoire ?

Code :
1
2
3
 
$doc_xml = @domxml_open_file($sFichier, DOMXML_LOAD_VALIDATING, $error);
var_dump($error);
Ca me parait un peu léger non?

Merci par avance
philippejuju est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2007, 17h24   #2
Membre éprouvé
 
Avatar de goodpz
 
Inscription : février 2007
Messages : 475
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 475
Points : 474
Points : 474
Pas de validation XSD avec php4 en effet (du moins, je n'ai pas encore vu ça)

Quand tu utilises DOMXML_LOAD_VALIDATING, le path file du dtd dans le fichier xml est relatif par rapport au document root du server ou parfois relatif au bin d'apache...

Le mieux c'est que tu testes. Il y a pas mal d'entrée à ce sujet dans le bug tracker de php.net
goodpz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 10h17   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2003
Messages : 26
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 26
Points : 13
Points : 13
Envoyer un message via MSN à philippejuju
Ok, merci pour avoir confirmer goodpz.
Pour la validation xsd, j'ai peut être trouver la solution, en utilisant xmllint.
Code :
1
2
3
4
5
6
 
$tabErreurValidation = array();
			if (substr(strtoupper(PHP_OS), 0, 3) != 'WIN' &&
				($xmllint = @exec('which xmllint 2>/dev/null')))
 
			@exec($xmllint . ' --noout --nonet --schema ' . FICHIER_XSD . ' ' . $sFichier . ' 2>&1', $tabErreurValidation, $iLigneErreur);
Ca marche plutôt pas mal et très rapide en plus
Salutation
philippejuju est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2008, 16h23   #4
Invité de passage
 
Inscription : février 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 3
Points : 3
Points : 3
hello philippejuju;

Je suis né de la dernière pluie moi
Je suis confronté au même souci que toi. Là j'ai des xml à valider en PHP4 et ta solution me semble pas mal du tout.

Pourrais-tu m'en dire plus sur ton ptit bout de code ?
Est-ce qu'il marche sous n'importe quel environnement LINUX ?
Que dois-je installer sur mon serveur ou que dois-je savoir de plus ?

Je voudrais bien bénéficier de ta rude expérience
Sinon aujourd'hui tu utilises un autre moyen plus complet en pure PHP4 ?

Merci bcp.
PS: Si d'autres ont des solutions je ne suis pas fermé héhéhé .
mayeulak 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 04h33.


 
 
 
 
Partenaires

Hébergement Web