mise en page text xml

Eléphant du PHP | 123 Messages

19 mars 2012, 14:36

bonjour,

je debute avec le format xml j arrive a recuperer des données avec le xslt cependant j ai un soucis de mis en page

j ai ceci

Code : Tout sélectionner

<descriptif><![CDATA[ BELKIN - CÔble de rallonge USB - 3.1m (F3U134B10) Type : CÔble de rallonge USB Technologie : BlindÚ American Wire Gauge (AWG) : 20 Longueur : 3 m CaractÚristiques du cÔble : MoulÚ, connecteurs plaquÚs or Connecteur(s) : 1 x USB Ó 4 broches, type A - mÔle Connecteur(s) (Autre c¶tÚ) : 1 x USB Ó 4 broches, type A - femelle ConformitÚ aux normes : USB / Hi-Speed USB Type d'emballage : Pour la vente au dÚtail Services & maintenance : Garantie limitÚe Ó vie ]]></descriptif>
qui s affiche plutot bien dans mon editeur de texte mais quand je recupere via le web ca me met tout ca en pavé sur une seule ligne et quand je fais afficher le code source c est nikel comme l editeur
comment je peux faire en sorte que cela s affiche comme sur l editeur ou le code source???

merci d avance

merci d avance

ViPHP
xTG
ViPHP | 7331 Messages

19 mars 2012, 16:59

Dans quel contexte utilises-tu ton XML ?

En HTML par exemple un retour à la ligne est la balise <br />
Si tu utilises PHP en langage serveur pour parser ton XML et l'afficher tu peux regarder du côté de la fonction nl2br() qui permet de transformer les \n (caractère de retour à la ligne) en <br />.

Eléphant du PHP | 123 Messages

19 mars 2012, 17:18

alors en faite c est l affichage d un catalogue
j ai au depart transformer mon xml en sql pour en faire une base de données donc la je connais a peu pres avec mes requetes et tout mais j ai toujours mon soucis avec ce descriptif qui s affiche pas beau

j ai fais ceci aussi dans mon php
$desc=str_replace('. ',".\r\n\r\n",$desc );
$desc=str_replace('!',"!\r\n",$desc );
mais le resultat n est pas vraiment bien sur ce genre de ligne avec "type:cable de rallonge usb" ca retourne pas a la ligne par la suite
alors j ai pensé qu il fallait que j exploite directement le fichier xml pour afficher correctement vue qu il retourne a la ligne dans mon editeur
je sais que c est possible mais je sais pas comment on fait

ViPHP
xTG
ViPHP | 7331 Messages

19 mars 2012, 20:58

Mon message précédent est mal passé...
La balise de retour à la ligne en HTML est :

Code : Tout sélectionner

<br />
Tu peux utiliser plus simplement la fonction PHP nl2br() qui va les remplacer pour toi.

Pour finir :
Retour à la ligne dans un éditeur != retour à la ligne dans un navigateur.

Eléphant du PHP | 123 Messages

19 mars 2012, 22:02

je dois surement me planter quelque part car y a rien qui change

j ai mis ceci apres ma requete
echo nl2br($desc);

mais pareil tout en bloc !!

ViPHP
xTG
ViPHP | 7331 Messages

20 mars 2012, 10:17

Si tu as encore tes str_replace() c'est normal vu qu'ils suppriment les \r\n.
Montres nous ton code actuel.

Eléphant du PHP | 123 Messages

20 mars 2012, 12:18

ben j avais mis mon echo avant les str

voici mon code
 $requete = "SELECT* ,round((net_ttc * 1.622),2) as net FROM product 
                          where ref='".$_GET['ref']."'";
                          
                          $resultat = mysql_query ($requete);
                					$tempo = mysql_fetch_assoc($resultat);
                          
                				  $ref=$tempo['ref'];
                					$photo=$tempo['photo'];
                					$mod=$tempo['modele'];
                					$marq=$tempo['marque'];
                					$desc=$tempo['descriptif'];
                					$prix=$tempo['net'];
                					$ref = $_GET['ref'];
                				  
                          
                           echo nl2br($desc);
merci pour le coup de main

ViPHP
xTG
ViPHP | 7331 Messages

20 mars 2012, 14:05

Et il y a quoi dans $desc ?
Le morceau de XML que tu nous montres en premier post ?
Si tel est le cas cela devrait s'afficher correctement si ta requête renvoie quelque chose.

Eléphant du PHP | 123 Messages

20 mars 2012, 14:17

Et il y a quoi dans $desc ?
Le morceau de XML que tu nous montres en premier post ?
Si tel est le cas cela devrait s'afficher correctement si ta requête renvoie quelque chose.

tout a fait c est la meme chose que le fichier xml mais la venant de la BDD (xml converti en sql)

ViPHP
xTG
ViPHP | 7331 Messages

20 mars 2012, 17:09

Si ton affichage ne comporte aucun retour à la ligne malgré le nl2br() je doute que ton enregistrement possède des retours à la ligne.
Ils ont du être supprimé par un quelconque traitement de ta part à l'insertion en base de données.

Eléphant du PHP | 123 Messages

20 mars 2012, 17:16

c est un logiciel qui a fait le traitement, faudrait que je regarde si y a pas des options pour ca
mais si y a pas comment fait on pour traiter le fichier xml directement avec le nl2br() ?

ViPHP
xTG
ViPHP | 7331 Messages

20 mars 2012, 18:16

Tu extraits ton node XML dans une variable (avec je ne sais quelle librairie, à toi de faire ton choix il en existe des tonnes).
Tu traites ensuite cette variable avec la fonction nl2br().
Puis tu en fais ce que tu veux. ;)

Eléphant du PHP | 123 Messages

20 mars 2012, 19:26

je viens de faire des recherches et j avoue ca part dans dans tout les sens entre dom sax java ,je plane quoi
tu n aurai pas un nom a me donner? simple pour les debutants comme moi
la j ai trouver JDOM et xerces mais comment les utilisés j ai pas encore compris :cry:

ViPHP
xTG
ViPHP | 7331 Messages

20 mars 2012, 19:41

Pourquoi nous parles-tu soudainement de Java ?
Tu as du JEE sur ton serveur ou du PHP ?
Car on ne mélange pas les deux...

Eléphant du PHP | 123 Messages

20 mars 2012, 19:53

non non c est juste dans mes recherche google parser un xml ou librairie xml je suis tomber sur des forum qui en parlai, moi je suis en php et bdd mais comme j arrive pas a afficher correctement je me penche sur le traitement xml que je connais pas du tout

par contre je viens de verifier il n y a aucun traitement sur le fichier xml ,le fichier sql crée les tables c est tout, mais est ce que ca joue si la table descriptif est en text ou en char voir varchar??