Valid XHTML     Valid CSS2    

XML en L2, université d'Angers

    gilles.hunault@univ-angers.fr

 

T.P. numéro 5 : Programmation

 

Table des matières cliquable

  1. Programmation en PHP (1) : lecture

  2. Programmation en PHP (2) : génération

  3. Programmation en PHP (3) : recherche

  4. Programmation en PHP (4) : transformation

  5. Programmation en JavaScript (1) : lecture

  6. Programmation en JavaScript (2) : génération

 

Il est possible d'afficher toutes les solutions via  ?solutions=1  et de les masquer via  ?solutions=0 .

 

Attention  : tout code PHP qui doit produire du XHTML doit être écrit via du PHP conceptuel, donc sans marqueur < ou >.

On pourra consulter le code-source php de cette page à titre d'exemple.

Un rappel sur les fonctions et méthodes PHP pour traiter du XML se trouve à la page xmlphp.

1. Programmation en PHP (1) : lecture

Comment fait-on pour lire des fichiers en XML ?

Essayer par exemple d'afficher, en ligne de commandes, pour le fichier films2.xml, tous les titres de films avec leur numéro, comme ci-dessous :


     Voici tous les titres de films
       1. Vertigo
       2. Alien
       3. Titanic
       4. Sacrifice
       5. Volte/Face
       6. Sleepy Hollow
       7. American Beauty
       8. Impitoyable
       9. Gladiator
      10. Blade Runner
      11. Piège de cristal
      12. 58 minutes pour vivre
      13. Van Gogh
      14. Seven
      15. L'armée des douze singes
      16. Le nom de la rose
      17. Pulp fiction
      18. Mary à tout prix
      19. Terminator
      20. Les dents de la mer
      21. Le silence des agneaux
      22. Le prince d'Egypte
      23. Godzilla
      24. Matrix
      25. Mission: Impossible
      26. Kagemusha
      27. Les pleins pouvoirs
      28. Le gendarme et les extra-terrestres
      29. Les frères pétards
      30. Le monde perdu
      31. Rain Man
      32. Top Gun
      33. Les bronzés font du ski
      34. MICROCOSMOS
      35. Psychose
      36. Le retour du Jedi
      37. Les oiseaux
      38. Reservoir dogs
      39. Eyes Wide Shut
      40. Shining
      41. Pas de printemps pour Marnie
      42. Fenêtre sur cour
      43. La mort aux trousses
      44. Jeanne d'Arc
      45. Le cinquième élément
      46. Léon
      47. Nikita
      48. Le grand bleu
     

On pourra utiliser SimpleXML.

Solution :  

 

2. Programmation en PHP (2) : génération

Essayez d'écrire le programme PHP correspondant à l'action du formulaire genere_f.php de façon à ce que le navigateur ouvre le fichier XML résultat dès qu'il est généré. Ici, on utilisera DOM.

Au passage, quelle serait la «meilleure» structuration du fichier résultat ?

Solution :  

 

3. Programmation en PHP (3) : recherche

On voudrait compter le nombre de protéines du fichier leadb880.xml et vérifier que chaque protéine a bien un attribut length. Ecrire un script PHP qui effectue ce traitement puis qui trouve la plus petite longueur de protéine et la plus grande. On pourra se contenter d'un script en ligne de commandes.

Solution :  

 

4. Programmation en PHP (4) : transformation

Ecrire une transformation XSL qui compte les films, les artistes et les metteurs en scène, comme ci-dessous. On la testera en ligne de commandes.


     $gh> xmlstarlet tr nbfa1.xsl films2.xml
     
     Il y a 48 films dans films2.xml et 117 artistes.
     48 références de metteurs en scènes sont utilisées pour 32 metteurs en scène distincts.
     

Ecrire ensuite une page Web en PHP valide au sens de XHTML 1.0 Strict qui effectue cette transformation sur le serveur. On affichera le résultat dans un élément de type <pre> comme ici.

Comment faut-il faire si on veut afficher avec de la couleur et dans des paragraphes comme dans la page nbfa2 ?

Solution :  

 

5. Programmation en JavaScript (1) : lecture

Comment fait-on pour lire du XML en JavaScript ? Reproduire la sortie de l'exercice 1 via du Javascript externalisé et non intrusif. On pourra utiliser la page nbelt.php comme point de départ, l'archive des fichiers à utiliser est ici.


     <?php
     #   # (gH)   -_-  nbelt.php  ;  TimeStamp (unix) : 27 Novembre 2017 vers 16:31
     error_reporting(E_ALL | E_NOTICE | E_STRICT ) ;
     include("std.php") ;
     debutPage("Nombre d'éléments XML","strict") ;
     debutSection() ;
     
     h1("Comptage d'éléments XML") ;
     
     finSection() ;
     finPage() ;
     ?>
     

Solution :  

 

6. Programmation en JavaScript (2) : génération

Essayer de produire, via du JavaScript externalisé, le contenu XML suivant 


     <trajets>
       <trajet id="tr02436">
            <train>TGV </train>
            <depart>Angers</depart>
            <arrive>Paris Montparnasse</arrive>
       </trajet>
       <trajet id="tr5897">
            <train>Micheline </train>
            <depart ts="2016-09-08 13:00">Troyes</depart>
            <arrive ts="2016-09-08 17:08">Dijon</arrive>
       </trajet>
     </trajets>
     

Solution :  

 

Code-source php de cette page.

 

 

retour gH    Retour à la page principale de   (gH)