saut de ligne xml

newbiexml
Invité n'ayant pas de compte PHPfrance

10 oct. 2006, 08:29

Bonjour à tous,

Je fais un fichier xml à partir d'un script php.
Pb, dans la balise <description> je met une variable php qui contient 3 informations. J'aimerais que ces 3 infos se mettent à la ligne. J'ai essayé les <br>, \n, mais lorsque je mets ça j'ai une erreur dans le xml.

Comment faire ?
Merci de votre aide.

@+ tard

repOne
Invité n'ayant pas de compte PHPfrance

10 oct. 2006, 09:08

euh... non jvois pas désolé ^^

Invité
Invité n'ayant pas de compte PHPfrance

10 oct. 2006, 09:13

euh... non jvois pas désolé ^^
Bah si tu vois pas, tu réponds pas :evil: ? car là j'ai eu une fausse joie, je cherche depuis un ptit moment... c'est pas drole... :lol:

Mr le moderateur, peut-on déplacer mon sujet dans la rubrique xml svp ?

@+ tard

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 oct. 2006, 09:23

Mr le moderateur, peut-on déplacer mon sujet dans la rubrique xml svp ?
c'est fait ;)

Sinon, pour ton soucis, comment-est ce que tu construit ton xml ?
Est-ce qu'il est possible de voir un peu de code ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

10 oct. 2006, 09:27

Mr le moderateur, peut-on déplacer mon sujet dans la rubrique xml svp ?
c'est fait ;)

Sinon, pour ton soucis, comment-est ce que tu construit ton xml ?
Est-ce qu'il est possible de voir un peu de code ?
Ok, voici le code à partir du php :

$xml = '<?xml version="1.0" encoding="iso-8859-1"?>';
$xml .= '<?xml-stylesheet type="application/xslt+xml" href="news_gdsi.xsl"?> ';
$xml .= '<rss version="2.0">';
$xml .= '<channel>'; 
$xml .= '<title>NEWS GDSI</title>';
$xml .= '<link>http://web.cpam-tours.cnamts.fr/GDSI/rss_gdsi/news_gdsi.xml</link>';
$xml .= '<description>Dernieres demandes GDSI</description>';

---- Moulinette php pour récupérer des infos dans la base ---

$lien = "http://web.cpam-tours.cnamts.fr/GDSI/rss_gdsi/consultation_rss.php?id_demande=$id_demande";	   
		   $resume = "Date réalisation : $date_souhaite\t\n"." Demandeur : $nom_demandeur\t\n"." Service : $service_demandeur\t\n";

            $xml .= '<item>';
				$xml .= '<title>'.$objet.'</title>';
				$xml .= '<description>'.$resume.'</description>';
				$xml .= '<link>'.$lien.'</link>';
	        $xml .= '</item>';
			}//fin du while
	}

$xml .= '</channel>';
$xml .= '</rss>';
       
$fp = fopen("news_gdsi.xml", 'w+');
fputs($fp, $xml);
fclose($fp);


Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 oct. 2006, 09:34

Je ne comprend pas trop :?

Essaye de mettre un espace entre la fin de ta variable et le \n. De même, met tout en une seule chaine :?
$resume = "Date réalisation : $date_souhaite \n Demandeur : $nom_demandeur \n Service : $service_demandeur \n";
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

10 oct. 2006, 09:46

Je ne comprend pas trop :?

Essaye de mettre un espace entre la fin de ta variable et le \n. De même, met tout en une seule chaine :?
$resume = "Date réalisation : $date_souhaite \n Demandeur : $nom_demandeur \n Service : $service_demandeur \n";
Merci pour cette réponse, mais cela ne fonctionne pas, j'ai tout sur une seule ligne. Qu'est-ce que tu ne comprends pas ?

merci de ton aide c'est sympa

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 oct. 2006, 10:09

Qu'est-ce que tu ne comprends pas ?
pourquoi est-ce que ça ne fonctionne pas :?

Comment est-ce que tu visualises ton flux pour en déduire que le \n n'est pas interpreté ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

10 oct. 2006, 10:33

Qu'est-ce que tu ne comprends pas ?
pourquoi est-ce que ça ne fonctionne pas :?

Comment est-ce que tu visualises ton flux pour en déduire que le \n n'est pas interpreté ?
Dans thunderbird... Les 3 variables concaténées en une seule apparaisse comme une seule ligne dans le coprs du message et non l'un en dessous de l'autre.
Dans IE, il affiche le xml de façon classique et tout sur une seule ligne également.
Et si je faisais appel à une feuille xsl pour la mise en forme directement dans mon script php ? qu'en penses tu ?

merci
@+

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 oct. 2006, 10:55

Si tu veux générer un flux XML, il doit être possible de sauter une ligne :-k
Je l'ai déjà fait ça pourtant ... :-k

Essaye avec la xsl mais je trouve que ça fait bidouille :?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

10 oct. 2006, 11:19

Si tu veux générer un flux XML, il doit être possible de sauter une ligne :-k
Je l'ai déjà fait ça pourtant ... :-k

Essaye avec la xsl mais je trouve que ça fait bidouille :?
Salut,

j'ai trouvé qq chose, j'ai rajouté ça dans ma ligne ou il y a mes 3 variables :
$resume = "Date réalisation : $date_souhaite"."<![CDATA[\n]]>"."Demandeur : $nom_demandeur"."<![CDATA[\n]]>"."Service : $service_demandeur";
a l'affichage dans IE et firefox, ça fonctionne j'ai bien mon saut de ligne entre chaque valeur, par contre dans le corps du message de thunderbird c'est toujours sur une même ligne... Pourquoi ? C'est thunderbird qui n'interprete pas tout correctement ?

@+ tard

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 oct. 2006, 11:29

Effectivement, en XML, pour du contenu, il est toujours bon de le mettre en balise <![CDATA[...]]> pour eviter l'interprétation de ce contenu

Essaye de tout mettre dans la même balise :
$resume = "<![CDATA[Date réalisation : $date_souhaite \nDemandeur : $nom_demandeur \nService : $service_demandeur]]>";
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

10 oct. 2006, 11:50

Effectivement, en XML, pour du contenu, il est toujours bon de le mettre en balise <![CDATA[...]]> pour eviter l'interprétation de ce contenu

Essaye de tout mettre dans la même balise :
$resume = "<![CDATA[Date réalisation : $date_souhaite \nDemandeur : $nom_demandeur \nService : $service_demandeur]]>";
en faisant comme ça, ça ne fonctionne plus dans les navigateurs.
je vais laisser tomber, j'essai de faire ça pour thunderbird dans un souci de confort utilisateur... pfffiouu, dure, dure.
Autre petite question, dans les news que je reçois je pointe vers un lien qui ouvre une page. Est-il possible d'afficher cette page dans le corps du message ? Comme ça je n'aurais plus de souci pour mon affichage plus haut... je vais chercher de ce côté.

@+

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

18 oct. 2006, 12:00

Et si au lieu d'utiliser le parseur d'un navigateur, tu regardais le contenu du fichier xml avec un éditeur de texte ? ou bien si tu le lisais en php et l'affichait dans un champ textarea, voire en lui collant du nl2br() pour que le navigateur affiche le html correspondant ?

Je suis certain que tu y verrais tes retours charriot bien plus facilement qu'avec un navigateur qui n'interprêtera jamais un \n comme un retour à la ligne et qui considerera tes <br> soit comme une erreur dans ta syntaxe xml, soit comme une chaine de caractère qu'il ne doit pas interprêter :)

dious
Invité n'ayant pas de compte PHPfrance

05 janv. 2007, 11:49

J'avais exactement le meme probleme que toi.
Je crée mon fichier xml a partir d'un fichier PHP. Pour pouvoir allé a la ligne (dans le fichier XML) il faut bien utilisé le \n.
exemple:
$xml_tab[$numSoiree]='<soiree club="'.$club.'" ville="'.$ville.'" pays="'.$pays.'" date="'.$date.'">ajouter</soiree>'."\n";
Moi au début sa marché par car j'avais mis:
$xml_tab[$numSoiree]='<soiree club="'.$club.'" ville="'.$ville.'" pays="'.$pays.'" date="'.$date.'">ajouter</soiree>\n';
Voila en ésperant que que sa pourra aidé certain.