Créer un fichier XML à partir d'un formulaire

Créer un fichier XML à partir d'un formulaire - PHP - Programmation

Marsh Posté le 16-10-2010 à 18:37:46    

Bonjour à toutes et à tous,  
 
après un nombre d'heure impressionnant à essayer de résoudre ce problème je me permets de vous le communiquer pour essayer de trouver une solution. Donc voici, j'essaye de créer un fichier xml à partir d'un texte saisit dans un TEXTAREA.  
 
Tout d'abord voici mon formulaire :  
 

Code :
  1. <form action="test002.php" method="post">
  2.     <textarea name="texte" id="texte"></textarea>
  3.     <input type="submit"/>
  4. </form>


 
Maintenant, mon code PHP :  
 

Code :
  1. /////////////////////////////////////////////////////////////////////////
  2. ////////////////   ENREGISTRONS LES DONNEES DANS UN FICHIER XML
  3. ////////////////////////////////////////////////////////////////////////
  4. # affichons les informations :   
  5. $cle_xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
  6. $texte = "<temp>".$_REQUEST['texte']."</temp>";
  7. $xml = $cle_xml . $texte;
  8. # On instancie l'objet XML :
  9. $docXML = new DomDocument();   
  10. # Créons le fichier XML :
  11. $docXML -> loadXML($xml);
  12. $docXML -> save ("file.xml" );


 
Donc lorsque je saisi dans mon TEXTAREA :  
 

Code :
  1. bonjour

 
 
mon fichier xml contient bien :  
 

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1" ?>
  2. <temp>bonjour</temp>


 
Maintenant si je saisi (toujours dans mon TEXTAREA) :  

Code :
  1. <gras>bonjour</gras>


 
alors mon fichier XML ne contient plus que :  

Code :
  1. <?xml version="1.0" ?>


 
au lieu de :  

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1" ?>
  2. <temp><gras>bonjour</gras></temp>


 
Alors vraiment, mais vraiment, si vous savez comment faire je suis vraiment preneur car là j'en ai vraiment besoin et je ne m'en sors pas!!!
 
En tout cas merci d'avance!
 
Seb
 

Reply

Marsh Posté le 16-10-2010 à 18:37:46   

Reply

Marsh Posté le 16-10-2010 à 19:02:11    

Peut-être un problème d'encoding?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 17-10-2010 à 11:09:25    

Alors c'était une idée, et j'ai changé :  
 

Code :
  1. $cle_xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";


en :  

Code :
  1. $cle_xml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";


 
mais j'ai toujours exactement le même problème...  
 
Au secours  :sweat:  

Reply

Marsh Posté le 17-10-2010 à 11:47:13    

il n'y a pas un truc en XML avec [!(DATA)] un truc dans ce style pour dire à XML que ce qui vient après il ne doit pas l'interpréter...


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 17-10-2010 à 15:30:30    

Alors j'y avais déjà pensé, mais en le testant cela ne marchait pas avec DOMDocument : il ne me trouvait pas les balises <gras> par exemple... Donc pas top du tout...
 
 
Mais merci de ton idée!  
 
Si tu en as une autre je veux bien car là je désespère...
 
(et promis je donne la solution si je trouve entre temps!)


Message édité par c-wolf le 17-10-2010 à 15:32:05
Reply

Marsh Posté le 17-10-2010 à 23:55:02    

Testé tel quel :

Code :
  1. <?PHP
  2. $_REQUEST['texte'] = "<gras>bonjour</gras>";
  3. $cle_xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
  4. $texte = "<temp><![CDATA[".$_REQUEST['texte']."]]></temp>";
  5. $xml = $cle_xml . $texte;
  6. # On instancie l'objet XML :
  7. $docXML = new DomDocument(); 
  8. # Créons le fichier XML :
  9. $docXML -> loadXML($xml);
  10. $docXML -> save ("file.xml" );
  11. ?>


 
résultat :

Citation :

<?xml version="1.0" encoding="ISO-8859-1"?>
<temp><![CDATA[<gras>bonjour</gras>]]></temp>


 
résultat attendu non :??:
 
Edit :
autre test :

Code :
  1. <?PHP
  2. $_REQUEST['texte'] = "<gras>bonjour</gras>";
  3. $cle_xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
  4. $texte = "<temp>".$_REQUEST['texte']."</temp>";
  5. $xml = $cle_xml . $texte;
  6. # On instancie l'objet XML :
  7. $docXML = new DomDocument(); 
  8. # Créons le fichier XML :
  9. $docXML -> loadXML($xml);
  10. $docXML -> save ("file.xml" );
  11. ?>


 
résultat :

Citation :

<?xml version="1.0" encoding="ISO-8859-1"?>
<temp><gras>bonjour</gras></temp>


Message édité par stef_dobermann le 17-10-2010 à 23:58:20

---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 18-10-2010 à 09:59:56    

A voir maintenant quel est l'encode du formulaire ...


---------------
Tout à commencé par un rêve...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed