Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1984 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Transformer un PHP en XML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Transformer un PHP en XML

n°1923199
Shinzo94
Posté le 11-09-2009 à 10:29:08  profilanswer
 

Bonjour,
 
Voilà je fait actuellement un formulaire avec ELgg (ne vous inquiété pas restez lire la suite), et j'ai un problème pour transformer mon CV europass crée en XML
Voilà mon code
 

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <europass:learnerinfo xmlns:europass="http://europass.cedefop.europa.eu/Europass/V2.0"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xsi:schemaLocation="http://europass.cedefop.europa.eu/Europass/V2.0 http://europass.cedefop.europa.eu/ [...] .xsd&#034;
  5.     locale="en_GB">
  6.     <docinfo>
  7.         <issuedate>2008-10-10T11:50:08+03:00</issuedate>
  8.         <xsdversion>V2.0</xsdversion>
  9.         <comment>Automatically generated Europass CV</comment>
  10.     </docinfo>
  11.      <identification>
  12.         <firstname><?php echo ($vars['cvconvertguid']->firstname); ?></firstname>
  13.         <lastname><?php echo ($vars['cvconvertguid']->surname); ?></lastname>
  14.         <demographics>
  15.             <birthdate><?php echo ( $vars['cvconvertguid']->date); ?></birthdate>
  16.             <gender><?php echo ( $vars['cvconvertguid']->gender); ?></gender>
  17.             <nationality>
  18.                 <label><?php echo ( $vars['cvconvertguid']->nationnality); ?></label>
  19.             </nationality>
  20.         </demographics>
  21.         <contactinfo>
  22.         <telephone><?php echo ($vars['cvconvertguid']->telephone); ?></telephone>
  23.         <mobile><?php echo ($vars['cvconvertguid']->mobile); ?></mobile>
  24.         <email><?php echo ($vars['cvconvertguid']->email); ?></email>
  25.         <fax><?php echo ($vars['cvconvertguid']->fax); ?></fax>
  26.         </contactinfo>
  27.     </identification>
  28.     <?php $expro = get_entities_from_relationship("relationCvExp", $vars['cvconvertguid']->guid);?>
  29.     <?php foreach ($expro as $experience):  ?>
  30.     <workexperiencelist>
  31.         <workexperience>
  32.             <period>
  33.                 <from>
  34.                     <year><?php echo ($experience->dateexperience ); ?></year>
  35.                     <month>--<?php echo ( $experience->month); ?></month><day>---<?php echo ( $experience->day); ?></day>
  36.                 </from>
  37.                 <to>
  38.                     <year><?php echo ($experience->dateexperiencefin); ?></year>
  39.                     <month>--<?php echo ( $experience->monthfin); ?></month>
  40.                     <day>---<?php echo ( $experience->dayfin); ?></day>
  41.                 </to>
  42.             </period>
  43.             <position>
  44.                 <label><?php echo $experience->position; ?></label>
  45.             </position>
  46.             <activities><?php echo ( $experience->responsibilities); ?></activities>
  47.             <employer>
  48.                 <name><?php echo ( $experience->employer); ?></name>
  49.                 <address>
  50.                     <addressLine><?php echo $experience->addressexp; ?></addressLine>
  51.                     <municipality><?php echo $experience->municipalityexp; ?></municipality>
  52.                     <postalCode><?php echo $experience->postalexp; ?></postalCode>
  53.                     <country>
  54.                         <label><?php echo $experience->countryexp; ?></label>
  55.                     </country>
  56.                 </address>
  57.                 <sector>
  58.                     <label><?php echo ( $experience->business); ?></label>
  59.                 </sector>
  60.             </employer>
  61.         </workexperience>
  62.         <?php endforeach; ?>
  63.     </workexperiencelist>
  64.     <?php $educ = get_entities_from_relationship("relationCvEdu", $vars['cvconvertguid']->guid);?>
  65.     <?php foreach ($educ as $education):  ?>
  66.     <educationlist>
  67.         <education>
  68.             <period>
  69.                 <from>
  70.                     <year><?php echo ( $education->dateeducation); ?></year>
  71.                     <month>--<?php echo $education->monthed; ?></month>
  72.                     <day>---<?php echo $education->dayed; ?></day>
  73.                 </from>
  74.                 <to>
  75.                     <year><?php echo ( $education->dateeducationfin); ?></year>
  76.                     <month>--<?php echo ( $education->monthedfin); ?></month>
  77.                     <day>---<?php echo ( $education->dayedfin); ?></day>
  78.                 </to>
  79.             </period>
  80.             <title><?php echo ( $education->qualification); ?></title>
  81.             <skills><?php echo ($education->skills); ?></skills>
  82.             <organisation>
  83.                 <name><?php echo ($education->education); ?></name>
  84.                 <address>
  85.                     <addressLine><?php echo $education->addressed; ?></addressLine>
  86.                     <municipality><?php echo $education->municipalityed; ?></municipality>
  87.                     <postalCode><?php echo $education->postaled; ?></postalCode>
  88.                     <country>
  89.                         <label><?php echo $education->countryed; ?></label>
  90.                     </country>
  91.                 </address>
  92.             </organisation>
  93.             <level>
  94.                 <label><?php echo ($education->level); ?></label>
  95.             </level>
  96.         </education>
  97.     </educationlist>
  98.     <?php endforeach; ?>
  99.     <languagelist>
  100.         <language xsi:type="europass:mother">
  101.             <label><?php echo ($vars['cvconvertguid']->languages); ?></label>
  102.         </language>
  103.         <language xsi:type="europass:foreign">
  104.             <label><?php echo ($vars['cvconvertguid']->other); ?></label>
  105.            
  106.         </language>
  107.     </languagelist>
  108.     <skilllist>
  109.         <skill type="social"><?php echo ($vars['cvconvertguid']->socialskills); ?> </skill>
  110.         <skill type="organisational"><?php echo ($vars['cvconvertguid']->orgaskills); ?></skill>
  111.         <skill type="technical"><?php echo ($vars['cvconvertguid']->techskills); ?></skill>
  112.         <skill type="computer"><?php echo ($vars['cvconvertguid']->compskills); ?> </skill>
  113.         <skill type="artistic"><?php echo ($vars['cvconvertguid']->artskills); ?></skill>
  114.         <skill type="other"><?php echo ($vars['cvconvertguid']->otherskills); ?></skill>
  115.         <structured-skill xsi:type="europass:driving">
  116.             <drivinglicence><?php echo ($vars['cvconvertguid']->driving); ?></drivinglicence>>
  117.         </structured-skill>
  118.     </skilllist>
  119.     <misclist>
  120.         <misc type="additional"><?php echo ($vars['cvconvertguid']->info); ?></misc>
  121.         <misc type="annexes"><?php echo ($vars['cvconvertguid']->annexe); ?></misc>
  122.     </misclist>
  123. </europass:learnerinfo>


 
C'est gros c'est pas beau. Bon pour le $vars['convertguid']->info sa contient par exemple le input/text d'information complémentaire
 
en fait les $vars['converguid']-> contient la valeur que je lui ai associé avec le nom situé après le ->.
 
Donc voilà il s'agit du fichier xml de CVEuropass si quelqu'un pourrais maider à comprendre un peu vu que c'est la première fois que j'en fait un.
 
Merci

mood
Publicité
Posté le 11-09-2009 à 10:29:08  profilanswer
 

n°1923211
FlorentG
Unité de Masse
Posté le 11-09-2009 à 10:59:20  profilanswer
 

En quoi c'est pas beau ? A part l'escaping qui manque ?

n°1923216
Shinzo94
Posté le 11-09-2009 à 11:09:39  profilanswer
 

C'etait de l'ironie ^^et pour le pas beau c'est pour ceux qui ne connaisse pas le jquery

n°1923220
FlorentG
Unité de Masse
Posté le 11-09-2009 à 11:19:40  profilanswer
 

Y'a pas de jQuery là-dedans  [:jimbotte] Et je pige toujours pas où est la question :D

n°1923223
Shinzo94
Posté le 11-09-2009 à 11:21:49  profilanswer
 

looool oui y a du elgg dedans.
 
Ma question est pourquoi sa ne transforme pas mon fichier en fichier XML ou est mon erreur

n°1923235
FlorentG
Unité de Masse
Posté le 11-09-2009 à 11:39:00  profilanswer
 

Y'a-t-il un message d'erreur quelconque ? Affiche la sortie, pour voir si y'a pas de l'XML invalide

n°1923243
Shinzo94
Posté le 11-09-2009 à 11:44:20  profilanswer
 

Alors quand je lance le fichier j'ai une page blanche qui est afficher:
 
Sous firrebug : dans l'onglet html j'ai <html><body></pre></body></html>
 
Je t'avoue que c'est la premiere fois que je fait du XML: J'ai fait le schéma  du code sous Oxygène mais sans rentré de PHP juste en mettant les valeurs en dur et il était bon

n°1923255
FlorentG
Unité de Masse
Posté le 11-09-2009 à 12:13:40  profilanswer
 

Fait voir le code autour de l'XML, celui qui assigne les variables et gère la sortie

n°1923263
Shinzo94
Posté le 11-09-2009 à 12:19:12  profilanswer
 

ouki donc si tu t'y connais en elgg je te montre tout ça ^^ j'ai chercher un peu faudrait pas que je mette CDATA autour de mon php?
 
Alors fonction qui récupère mes valeur au début ^^ je t'en met que un peu
 

Code :
  1. $firstname = get_input('firstname');
  2. $surname = get_input('surname');
  3. $adresse = get_input('adresse');
  4. $telephone = get_input('telephone');
  5. $mobile = get_input('mobile');
  6. $fax = get_input('fax');
  7. $email = get_input('email');
  8. $date = get_input('date');
  9. $gender = get_input('gender');
  10. $count = get_input('count');
  11. $counted = get_input('counted');
  12. $nationnality = get_input('nationnality');
  13. $cveuropass = new ElggObject();
  14. $cveuropass->title = $title;
  15. $cveuropass->firstname = $firstname;
  16. $cveuropass->surname = $surname;
  17. $cveuropass->description = $body;
  18. $cveuropass->adresse = $adresse;
  19. $cveuropass->telephone = $telephone;
  20. $cveuropass->mobile = $mobile;
  21. $cveuropass->fax = $fax;
  22. $cveuropass->email = $email;
  23. $cveuropass->date = $date;
  24. $cveuropass->gender = $gender;
  25. $cveuropass->count = $count;
  26. $cveuropass->counted = $counted;
  27. $cveuropass->subtype = "cveuropass";
  28. // for now make all blog posts public
  29. $cveuropass->access_id = ACCESS_PUBLIC;
  30. // owner is logged in user
  31. $cveuropass->owner_guid = get_loggedin_userid();
  32. // save tags as metadata
  33. // save to database
  34. $cveuropass->save();
  35. forward($cveuropass->getURL());


 
Sa c'est le fichier principal. Après j'ai aussi fait un fichier modifier pour modifier le CV qui marche.
Puis un fichier Convertxml qui est appelé quand on clique sur le bouton de index(qui contient la vue de mon formulaire finit)
 

Code :
  1. <?php
  2.   // Load Elgg engine
  3. include_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php" );
  4. // make sure only logged in users can see this page
  5. gatekeeper();
  6. $convertguid = get_input('guid');
  7. $convert = get_entity($convertguid);
  8. echo elgg_view('convertxmlform/converttoxml', array('cvconvertguid'=> $convert));
  9. ?>


Donc en fait quand je clique sur le bouton je lui envoie le GUID du blog en parametre que le fichier du haut recupère.
Avec mon get entity je prend tout les élement de mon blog => SA sa marche déjà fait pour le fichier modifier qui fonctionne.
Et donc la j'appel mon fichier XML qui serra en .php vu que elgg aime que ça ou presque et je l'affiche normalement directement. Mais bon sa ne marche pas ^^
 
J'espère que cela t'aide et que tu n'es pas trop perdu?


Message édité par Shinzo94 le 11-09-2009 à 12:19:37
n°1923278
FlorentG
Unité de Masse
Posté le 11-09-2009 à 12:45:22  profilanswer
 

Je connaissais pas elgg avant de lire ton premier message :D
 
Mais apparemment elgg_view devrait retourner effectivement le contenu du fichier XML :/
 
Y'a peut-être une erreur ailleurs. Alors souvent, si dans le php.ini y'a la directive shortags qui est activé, la PI XML fait planter. Et j'imagine que elgg utilise de l'output buffering pour récupérer la sortie, ce qui dans certains cas peut masquer certaines erreurs.
 
Change l'entête, à la place de  

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <europass.....


Met  

Code :
  1. <?php echo '<?xml version="1.0" encoding="UTF-8"?>', "\n" ?>
  2. <europass....


mood
Publicité
Posté le 11-09-2009 à 12:45:22  profilanswer
 

n°1923280
Shinzo94
Posté le 11-09-2009 à 12:48:24  profilanswer
 

T'inquiète je commence en Elgg aussi ^^
 
Alors si je fait ce que tu me dit voilà ce que ça m'affiche
 
 2008-10-10T11:50:08+03:00  V2.0  Automatically generated Europass CV        f                    -----1     --  ---
-- --- -- ---
>  
 
C'est un bon début j'ai déjà quelques valeurs ^^

n°1923282
Shinzo94
Posté le 11-09-2009 à 12:50:55  profilanswer
 

J'arrive à avoir les valeur sa m'a beaucoup aidé ^^  
 
Merci beaucouppppp
 
En fait il faut enlever les CDATA qui bloque.....je ne sais pas pourquoi

n°1923288
FlorentG
Unité de Masse
Posté le 11-09-2009 à 13:06:19  profilanswer
 

Pas besoin de CDATA ici :)
 
Par contre, n'oublie pas aussi d'escaper les valeurs :

Code :
  1. echo htmlspecialchars($valeur);


Sinon s'il se glisse des &, < ou >, ça plantera à nouveau

n°1923296
Shinzo94
Posté le 11-09-2009 à 13:21:28  profilanswer
 

d accord merci beaucoup en tout cas ^^


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Transformer un PHP en XML

 

Sujets relatifs
Problème de code PHP[Php/OpenLaszlo] conception de site/ transmission client/serveur
[XML] probleme de compilation dans libxml2[PHP, JavaScript] Copier la valeur d'un input
Comment renvoyer un document XML via un service WCF?[PHP] Comparaison de chaine d'un fichier
[PHP] injection sql (MS SQL)PHP ajout page automatique video AIDE SVP :) !!!
Page PHP pour réactiver des comptes sur un forum[WAMP]code PHP non interprété
Plus de sujets relatifs à : Transformer un PHP en XML


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR