valider un xml par un dtd avec php

Eléphanteau du PHP | 27 Messages

22 déc. 2005, 16:45

parce que je veux pas déclarer le dtd dans mon xml

parce que c'est un rss distant et ca doit se faire automatiquement

et que je ne sais pas comment je pourrais le rapatrier tout seul (ca j'y arrive) mais c'est de modif l'entête du xml en mettant DOCTYPE ....
le jour où on mettra les cons sur orbite, t'auras pas fini de tourner

Mammouth du PHP | 1311 Messages

22 déc. 2005, 16:54

bon j'i fait un truc dans le meme genre sauf mon rss etait en local
il s'agit d'une methode de ma classe
je fait une copie de mon fichier xml, j'inclue la dtd et ensuite je valise
private function validate_DTD()
	{
		$this->content=utf8_encode($this->content);
		$xml=new DOMDocument();
		$xml->loadXML($this->content);
		$racine=$xml->documentElement->nodeName;
		preg_match('#\<\?xml([^>]*)>#',$this->content,$resultat);
		$tab[1]='<!DOCTYPE '.$racine.' SYSTEM "http://localhost/projet_ing/RSS/'.$this->doctype.'">'."\n";
		$length=strlen($resultat[0]);
		$tab[0]=substr($this->content,0,$length);
		$tab[2]=substr($this->content,$length);
		$rss=new DOMDocument();
		$rss->loadXML($tab[0].$tab[1].$tab[2]);
		$rss->validate()?$flag=true:$flag=false;
		return $flag;
	}
j'espere que cela peut t'aider

Eléphanteau du PHP | 27 Messages

22 déc. 2005, 16:59

je suis débutant en php dc je comprends pas bien ton code,

ce que tu dis , c'est que c possible de modif un xml en incluant une ligne dedans comme ca?
le jour où on mettra les cons sur orbite, t'auras pas fini de tourner

Mammouth du PHP | 1311 Messages

22 déc. 2005, 17:04

biensur
peut etre que tu peut aussi le faire avec xslt, mais la je suis pas competant
je te conseil d'aller faire un tour sur le forum de developpez.com

Eléphanteau du PHP | 27 Messages

22 déc. 2005, 17:22

non j'aimerais bien faire comme toi

peut tu m'aider

mon fichier xml s'appelle test.xml se trouve dans

/monsitephp/xml

mon fichier dtd s'appelle test.dtd et se trouve dans le même répertoire

si j'appel ton code dans le même répertoire

je dois modif quoi du code?
le jour où on mettra les cons sur orbite, t'auras pas fini de tourner

Mammouth du PHP | 1311 Messages

22 déc. 2005, 20:35

je suis desolé de ne pas avoir repondu plus tot mais,
il semble que validate soit aussi une fonction php5
donc assure toi que tu ne peut pas avoir php5
et sinon regarde du cote du xslt

Eléphanteau du PHP | 27 Messages

22 déc. 2005, 21:12

ok je vais regarder à cela

merci pour tout !
le jour où on mettra les cons sur orbite, t'auras pas fini de tourner