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 :

[XSLT] [PHP] extraction des variable de xsl avec php


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 35
    Points : 38
    Points
    38
    Par défaut [XSLT] [PHP] extraction des variable de xsl avec php
    Salut tout le monde,

    Désolé pour le titre j'ai pas trouvé mieux....,c'est ma première participation dans ce magnifique forum, alors je crois que c'est clair que je suis débutant et je suis vraiment besoin de votre aide le plus vite possible et merci d'avance!

    Sujet :

    Le but de mon application php est de reformuler une requête de recherche et relancer la recherche avec google, alors tous d'abord je vous présente mais 1er essai
    Remarque: je suis obligé d'utiliser cette composition de langages :


    Un extrait fichier owl qui représente un petit thesaurus

    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
    38
    39
    40
    <?xml version="1.0"?>
    <rdf:RDF
        xmlns="http://www.owl-ontologies.com/4iag2007.owl#"
       …………………………
     
     
    <rdf:Description rdf:about="#anatomie">
        <rdfs:subClassOf rdf:resource="#biologie"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
      </rdf:Description>
     
     
    <rdf:Description rdf:about="#anatomie_végétale">
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
        <rdfs:subClassOf rdf:resource="#anatomie"/>
    </rdf:Description>
     
    <rdf:Description rdf:about="#anatomie_animale">
        <rdfs:subClassOf rdf:resource="#anatomie"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
      </rdf:Description>
     
    <rdf:Description rdf:about="#neuroanatomie">
        <rdf:type rdf:resource="#anatomie"/>
      </rdf:Description>
     
    <rdf:Description rdf:about="#organe_des_sens">
        <rdfs:subClassOf rdf:resource="#anatomie_animale"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
      </rdf:Description>
    ………..
     
    ……….
    ……..
    <rdf:Description rdf:about="#artère">
        <rdfs:subClassOf rdf:resource="#appareil_circulatoire"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
      </rdf:Description>
     
    </rdf:RDF>
    Mon but c'est de chercher pour un mot entrer par l'utilisateur son:

    Terme générale:les pères
    Termes spécifiques : les fils direct
    Terme associer

    Donc j'utilise ces trois templates xsl:


    tg.xsl:
    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
     
    <?xml version="1.0" ?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:php="http://php.net/xsl"
    version="1.0">
     
        <xsl:param name="cible"/>
        <xsl:variable name="var">#<xsl:value-of select="$cible"/></xsl:variable>
        <xsl:template match="/">
            <html>
     
                        <body>
                        <xsl:for-each select="//rdf:Description[@rdf:about=$var]">
     
    			       <xsl:variable name="r1"><xsl:value-of select="//rdf:Description[@rdf:about=$var]/rdfs:subClassOf/@rdf:resource"/></xsl:variable> 
    				   <xsl:variable name="r2" select="substring-after($r1,'#')"/>
                        <xsl:value-of select="$r2"/>   
                    </xsl:for-each>
     
                </body>
            </html>
     
     
        </xsl:template>
    </xsl:stylesheet>

    ts.xsl:

    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
    <?xml version="1.0" ?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" version="1.0">
     
        <xsl:param name="cible3"/>
        <xsl:variable name="var4">#<xsl:value-of select="$cible3"/></xsl:variable>
        <xsl:template match="/">
            <html>
     
                        <body>
     
     
                 <xsl:for-each select="//rdfs:subClassOf[@rdf:resource=$var4]">
     
    			       <xsl:variable name="p"><xsl:value-of select="ancestor::rdf:Description/@rdf:about"/></xsl:variable> 
                        <xsl:variable name="p1" select="substring-after($p,'#')"/>
                        <xsl:value-of select="concat($p1,'+OR+')"/>      
                    </xsl:for-each>
                </body>
            </html>
     
     
        </xsl:template>
    </xsl:stylesheet>
    ta.xsl:

    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
    <?xml version="1.0" ?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:php="http://php.net/xsl"
    version="1.0">
     
        <xsl:param name="cible2"/>
        <xsl:variable name="var3">#<xsl:value-of select="$cible2"/></xsl:variable>
        <xsl:template match="/">
            <html>
     
                        <body>
                        <xsl:for-each select="//rdf:type[@rdf:resource=$var3]">
     
    			       <xsl:variable name="v"><xsl:value-of select="ancestor::rdf:Description/@rdf:about"/></xsl:variable> 
                        <xsl:variable name="v1" select="substring-after($v,'#')"/>
                        <xsl:value-of select="$v1"/>      
                    </xsl:for-each>
     
                </body>
            </html>
     
     
        </xsl:template>
    </xsl:stylesheet>
    Et un fichier php:
    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
     
    <form name="form" method="post" action="pfe.php">
      <input name="requet" type="text" id="requet" size="100">
      <input type="submit" name="Submit" value="Search">
    </form>
    <?php 
    if (isset($_POST['requet']))
     {$x=$_POST['requet'];
    //nouvelle instance
    $xslt=new XSLTProcessor();
     
    //import de la feuille de xsl avec simplexml et la fonct XSLTProcessor::omportstylesheet
    $xslt -> importStylesheet(simplexml_load_file('tg.xsl'));
    //definiition de param cible pour tg
    $xslt -> setParameter(null, 'cible', $x );
    $xslt -> registerPhpFunctions();
    $y=$xslt -> transformToXml(simplexml_load_file('biologie.rdf.owl') );
     
    $xslt -> importStylesheet(simplexml_load_file('ta.xsl'));
    $xslt -> setParameter(null, 'cible2', $x );
    $h=$xslt -> transformToXml(simplexml_load_file('biologie.rdf.owl') );
     
    $xslt -> importStylesheet(simplexml_load_file('ts.xsl'));
    $xslt -> setParameter(null, 'cible3', $x );
    $l=$xslt -> transformToXml(simplexml_load_file('biologie.rdf.owl') );
     
     
     
    echo '<a href="http://www.google.fr/search?hl=fr&q='.$x.'+'.$y.'+'.$h.'+'.$l.'&btnG=Rechercher&meta="target="_self">'.'clique ici'.'</a>';
    c'est c est ps claire j'essaye d'exliquer un peut :

    le probleme que les resultats retournée par les fichier xsl ne sont pas des chaine mais une feuille xml et mon but c'est de retourné exactement le mot ciblé exple:


    si l'utilisateur a entrer 'anatomie' alors x = anatomie

    je veut que je recupere les var suivants:

    y='biologie'

    h= 'anatomie animale+OR+anatomie vigitale'

    l= 'neuroanatomie'


    NB j'ai utiliser la fonction getParameter de php5 sans résultats

    Svp qide moi jai maintenat 7j que je suis bloqué avant de tombé sur ce manifique forum
    Et merci

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    1)tu peux tres bien parcourir ton xml final pour y trouver tes infos
    http://stephaneey.developpez.com/tut...uveautes/#L2.2

    2)tu n'es pas obligé de produire du xml

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 35
    Points : 38
    Points
    38
    Par défaut j ai trouvé une solution
    salut la solution que j ai trouvé c'est d'extrair la resultat dans un fichier xml et chaque resultat dans une balise specifique puis je le recupere par la fonction simplexml!
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $var=$xml->non_balsie;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/09/2011, 09h10
  2. Envoyer des variables de Flash vers PHP avec GET
    Par Gizmil dans le forum Dynamique
    Réponses: 1
    Dernier message: 19/11/2007, 00h52
  3. [XSLT] Des variables entre XSL et PHP
    Par mabedan dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 17/08/2007, 16h17
  4. Réponses: 3
    Dernier message: 03/02/2005, 13h07

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