IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

XML + XSL + PHP


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2003
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1
    Points : 1
    Points
    1
    Par défaut XML + XSL + PHP
    j'aurai voulu savoir comment est il possible de créer une page avec le format XML avec du PHP( si c'est possible)? Je veux pouvoir afficher une page contenant des informations sur une ou plusieurs personnes je pense que pour "ranger" les informations et avoir une page "propre" l'idéal et le XML, mais je doit l'associer aussi une feuille de style.

    merci

  2. #2
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 39
    Points : 46
    Points
    46
    Par défaut
    Tu as une bibliothèque javascript trés complète qui te permet de gérer les document xml ainsi que les transformations avec des feuilles xsl.... Tu n'as qu'à faire une recherche la dessus et l'utiliser.... Le web pullule d'exemple a ce sujet. La démarche sera donc la suivante

    * écrire une feuille xsl qui va bien
    * dans ta page web, appeler la transformation depuis ton code javascript (sur une action onload par exemple)

    A chaque fois que tu modifieras ton flux xml, la page sera modifiée aussi

    Bon courage....

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Vous savez où je peux trouver un tutorial sur l'utilisation des xml et xslt dans php?

    Merci

  4. #4
    Membre confirmé
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Points : 499
    Points
    499
    Par défaut
    salut,

    personnellement j'utilise l'extension xslt de php (sablotron) disponible à partir de la version 4 et supportée par des hébergeur comme free...

    tu dois trouver des infos et des tutoriaux sur google, ou au moins dans les forums
    "Les gens normaux croient que si ca marche, c'est qu'il n'y a rien à reparer. Les ingénieurs croient que si ca marche, c'est que ca ne fait pas encore assez de choses."
    --Scott Adams

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    tu appels quoi par utiliser l'extention xslt.
    Tu as une doc sur cette extention?

    Merci

  6. #6
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Exemples de code qui fonctionne (projet au boulot en cours de développement) :

    Lit un contenu xml
    Ici les data xml sont dans la variable $xml, qui provient de la réponse d'un serveur de données xml, mais on peut aussi bien lire un fichier xml directement avec les fonctions habituelles fopen, fgets et fclose.
    Ce code affiche juste le contenu des balises "project-name" de mon document xml et l'id correspond (attribut "id" du tag). L'affichage est emballé dans une ligne de tableau, et l'id est passé en paramètre à des url pour modifier et effacer un enregistrement. Je dis tout ceci pour situer le contexte, et rendre le code compréhensibel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    $isSheet = false;
      $numSheets = 0;
      $id = 0;
     
      $parser = xml_parser_create();
      xml_set_element_handler($parser, "beginElement", "endElement");
      xml_set_character_data_handler($parser, "charData");
      xml_parse($parser, $xml);
      xml_parser_free($parser);
     
      function beginElement($xmlparser, $nom, $attr) {
      	global $isSheet, $numSheets, $id;
     
      	if ($nom == "project-name") {
      		if (sizeof($attr)>0) {
      			$id = $attr["id"];
      		}
      		$isSheet = true;
      		$numSheets++;
      	}
      }
     
      function endElement($xmlparser, $nom) {
      	// il ne faut rien faire ici dans ce cas.
      }
     
      function charData($xmlparser, $text) {
      	global $isSheet, $id;
      	if ($isSheet) {
      	  echo "<tr>";
      	  echo "<td width='70%'><a href='show.php?id=".$id."'>".$text."</a></td>";
      	  echo "<td><a href='modify.php?id=".$id."'>Modify</a> <a href='delete.php?id=".$id."'>Delete</a></td>";
      	  echo "</tr>";
      	  $isSheet = false;
            }
      }

    Second exemple

    Transformation XSL commandée par PHP :
    Le contenu du fichier xml est dans $xml, et de même pour le fichier xsl dans $xsl.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $xslt = xslt_create();
    $arguments = array('/_xml' => $xml, '/_xsl' => $xsl);
    //xslt_set_encoding($xslt, "iso-8859-1");      // undefined function ! --> bug connu :(
    $html = xslt_process($xslt, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);
     
    if ($html) echo $html;
    else showError("XSLT transformation error ".xslt_errno($xslt).": ".xslt_error($xslt));
     
    xslt_free($xslt);
    Tout ça marche très bien !

    Seul prob rencontré pour l'instant : gestion des lettres accentuées, comme vous voyez la fonction xslt_set_encoding n'est pas supportée, or elle est mentionnée dans le manuel... Je ne comprends pas... Si vous avez une solution à proposer, elle est la bienvenue !

    J'espère que le code que j'ai reproduit ici aidera ceux qui le souhaitent

    Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

    Pensez à consulter les FAQs et les cours et tutoriels.
    FAQ Linux - Cours et tutoriels Linux - FAQ PHP - Cours et tutoriels PHP
    Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.

    Je n'ai rien à voir avec la société www.ovh.com !

Discussions similaires

  1. Problème de caractères accentués XML XSL PHP
    Par ladnacs dans le forum Langage
    Réponses: 3
    Dernier message: 24/05/2006, 15h04
  2. PHP/XML/XSL
    Par sami69 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 10/04/2006, 14h30
  3. [XSLT][DOM] Php - Xml - Xsl
    Par topolino dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 08/12/2005, 19h34
  4. [Wamp] Cherche plateforme pour développer en php, mysql, xml, xsl
    Par ibtisss dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 18/10/2005, 17h31
  5. Transformation xml + xsl -> HTML via PHP
    Par petit-ourson dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 19/10/2003, 22h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo