Page 1 sur 2
saut de ligne xml
Posté : 10 oct. 2006, 08:29
par newbiexml
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
Posté : 10 oct. 2006, 09:08
par repOne
euh... non jvois pas désolé ^^
Posté : 10 oct. 2006, 09:13
par Invité
euh... non jvois pas désolé ^^
Bah si tu vois pas, tu réponds pas

? car là j'ai eu une fausse joie, je cherche depuis un ptit moment... c'est pas drole...
Mr le moderateur, peut-on déplacer mon sujet dans la rubrique xml svp ?
@+ tard
Posté : 10 oct. 2006, 09:23
par zeus
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 ?
Posté : 10 oct. 2006, 09:27
par Invité
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);
Posté : 10 oct. 2006, 09:34
par zeus
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";
Posté : 10 oct. 2006, 09:46
par Invité
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
Posté : 10 oct. 2006, 10:09
par zeus
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é ?
Posté : 10 oct. 2006, 10:33
par Invité
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
@+
Posté : 10 oct. 2006, 10:55
par zeus
Si tu veux générer un flux XML, il doit être possible de sauter une ligne

Je l'ai déjà fait ça pourtant ...
Essaye avec la xsl mais je trouve que ça fait bidouille

Posté : 10 oct. 2006, 11:19
par Invité
Si tu veux générer un flux XML, il doit être possible de sauter une ligne

Je l'ai déjà fait ça pourtant ...
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
Posté : 10 oct. 2006, 11:29
par zeus
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]]>";
Posté : 10 oct. 2006, 11:50
par Invité
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é.
@+
Posté : 18 oct. 2006, 12:00
par Ryle
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

j'ai trouvé la solution
Posté : 05 janv. 2007, 11:49
par dious
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.