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 + mozilla + documentfragment


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club Avatar de nemya
    Inscrit en
    Juin 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2004
    Messages : 102
    Points : 48
    Points
    48
    Par défaut xslt + mozilla + documentfragment
    salut,
    je souhaiterais transformer un fichier xml avec un fichier xslt sous mozilla et mettre le résultat de cette transformation dans une balise div.
    j'ai sû faire ce parsage mais mon problème c'est que le résultat de cette transformation est un documentfragment alors lorsque je fait mondiv.innerHTML = résultat de la transformation ça ne me donne rien. aussi j'ai fait mondiv.appendChild(résultat de la transformation) alors elle met le résultat dans la balise div mais elle enlève tous ce qui est balise html. lorsque le résultat est <table><tr><td>xxx</td></tr><tr><td>yyyy</td></tr></table> alors la balise div affiche xxxyyyy sans qu'elle prenne le format
    Pouvez vous m'aider
    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 83
    Points : 100
    Points
    100
    Par défaut résultat de la transformation
    Bonjour,

    ... j'ai sû faire ce parsage ...
    Peux-tu présenter le résultat de ta transformation pour commencer ?

    En attendant bon courage,

    Xavier

  3. #3
    Membre du Club Avatar de nemya
    Inscrit en
    Juin 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2004
    Messages : 102
    Points : 48
    Points
    48
    Par défaut xslt + mozilla + documentfragment
    salut,
    Voici le résultat que j'ai trouvé
    06/04/2006 zea 06/04/2006 22/03/2006 r"fd"a 10/03/2006 azerty
    Merci

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 83
    Points : 100
    Points
    100
    Par défaut
    Bonjour,

    Donc dans le résultat de ta transformation, tu n'as que les données brutes, c'est bien cela ?

    Il semble que tu ne fasses pas la tansformation nécessaire dans ta feuille de style.

    Déjà, il pourrait être bien que tu découpes en deux étapes bien distinctes.

    Vérifier le résultat de la transformation pour être sûr que c'est celui que tu veux et ensuite t'occuper du DOM JavaScript pour intégrer ce résultat.

    Pour la feuille de style, sans la voir, je peux pas te dire où est le problème.

    @+
    Xavier

  5. #5
    Membre du Club Avatar de nemya
    Inscrit en
    Juin 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2004
    Messages : 102
    Points : 48
    Points
    48
    Par défaut xslt + mozilla + documentfragment
    salut,
    voici un example de mon fichier xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <viewentries toplevelentries="5">
    <viewentry position="1" unid="7D18181B041914DC4125714E0065967D" noteid="20ED6" siblings="5">
    <entrydata columnnumber="0" name="date">
    <text>20060412|12/04/2006</text>
    </entrydata>
    <entrydata columnnumber="1" name="priority">
    <text />
    </entrydata>
    <entrydata columnnumber="2" name="objet">
    <text>sdfg</text>
    </entrydata>
    </viewentry>
    <viewentry position="2" unid="3965E3015F4E0E66412571480078EF98" noteid="20E1E" siblings="5">
    <entrydata columnnumber="0" name="date">
    <text>20060406|06/04/2006</text>
    </entrydata>
    <entrydata columnnumber="1" name="priority">
    <text />
    </entrydata>
    <entrydata columnnumber="2" name="objet">
    <text>zea</text>
    </entrydata>
    </viewentry>
    <viewentry position="3" unid="BFD5E0066ECA0B344125714800790109" noteid="20E26" siblings="5">
    <entrydata columnnumber="0" name="date">
    <text>20060406|06/04/2006</text>
    </entrydata>
    <entrydata columnnumber="1" name="priority">
    <text />
    </entrydata>
    <entrydata columnnumber="2" name="objet">
    <text />
    </entrydata>
    </viewentry>
    <viewentry position="4" unid="4604E7C841C8F65E4125714800791244" noteid="20E2A" siblings="5">
    <entrydata columnnumber="0" name="date">
    <text>20060322|22/03/2006</text>
    </entrydata>
    <entrydata columnnumber="1" name="priority">
    <text />
    </entrydata>
    <entrydata columnnumber="2" name="objet">
    <text>r"fd"a</text>
    </entrydata>
    </viewentry>
    <viewentry position="5" unid="F21693EB4B3551654125712D007501B1" noteid="1E56E" siblings="5">
    <entrydata columnnumber="0" name="date">
    <text>20060310|10/03/2006</text>
    </entrydata>
    <entrydata columnnumber="1" name="priority">
    <text />
    </entrydata>
    <entrydata columnnumber="2" name="objet">
    <text>azerty</text>
    </entrydata>
    </viewentry>
    </viewentries>
    et voci mon fichier xsl
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlnssl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlnsalan="http://xml.apache.org/xslt">
    <xsl:template match="//viewentry">
    <table width="100%" cellpadding="0" cellspacing="0">
    <tr>
    <td class="standard" style="cursor:hand;font-family:tahoma;font-size:12px">
    <xsl:attribute name="onclick">
    javascript:window.open('http://dev6/bo_app.nsf/<xsl:value-of select="@unid"/>?OpenDocument','OpShip','top=0,left=0,width=800,height=550,toolbar=no,status,menubar=no,scrollbars=yes,resizable=no')
    </xsl:attribute>
    <li>
    <xsl:if test="normalize-space(entrydata[@name='priority']) != ''">
    <img border="0">
    <xsl:attribute name="src">
    /icons/vwicn<xsl:value-of select="entrydata[@name='priority']"/>
    </xsl:attribute>
    </img>
    </xsl:if>
    <xsl:value-of select="substring-after(entrydata[@name='date'],'|')"/>
    <br/>
    <xsl:value-of select="entrydata[@name='objet']"/>
    </li>
    <br/>
    </td>
    </tr>
    </table>
    </xsl:template>
    </xsl:stylesheet>
    et voici mon code javascript
    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
    var xmlDoc
    function loadXML(){
    //load xml file
    // code for IE
    if (window.ActiveXObject){
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async=false;
    xmlDoc.load("http://dev6/bo_app.nsf/(DXL Departs scroll)?readviewentries&start=1&count=5&restricttocategory=Hichem Hbaieb");
    var oXsl = new ActiveXObject("Microsoft.XMLDOM");
    oXsl.async = false;
    oXsl.load("http://dev6/bo_app.nsf/DXL courriers scroll.xsl?OpenPage");
    strRet = xmlDoc.transformNode(oXsl);
    document.getElementById("idContent").innerHTML = strRet;
    }
    // code for Mozilla, etc.
    else if (document.implementation && document.implementation.createDocument){
    var xsltProcessor = new XSLTProcessor();
    var oXsl = document.implementation.createDocument("http://www.w3.org/1999/XSL/Transform","stylesheet",null);
    oXsl.load("http://dev6/bo_app.nsf/DXL courriers scroll.xsl?OpenPage");
    oXsl.onload=function (){
    xsltProcessor.importStylesheet(oXsl);
    xmlDoc= document.implementation.createDocument("","",null);
    xmlDoc.load("http://dev6/bo_app.nsf/(DXL Departs scroll)?readviewentries&start=1&count=5&restricttocategory=Hichem Hbaieb");
    xmlDoc.onload=function (){
    var htmlFragment = xsltProcessor.transformToFragment(xmlDoc, document); 
    document.getElementById("idContent").appendChild(htmlFragment); 
    }
    }
    }else alert('Your browser cannot handle this script');
    }
    Mais le résultat de la transformation est
    20060412|12/04/2006 sdfg
    20060406|06/04/2006 zea
    20060406|06/04/2006
    20060322|22/03/2006 r"fd"a
    20060310|10/03/2006 azerty
    La transformation n'est pas pris en charger
    Je pense que la faute n'est pas dans le fichier de style car sur IE La transformation est faite et je trouve le résultat désiré
    Pouvez vous m'aider
    Merci

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 83
    Points : 100
    Points
    100
    Par défaut Problème de paramètre XSL
    Bonjour,

    Donc, je pense avoir trouvé le problème.

    Le résultat que tu obtiens, je l'ai obtenu en passant en paramètre comme nom de la feuille de style une chaîne vide.

    Je pense donc que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    oXsl.load("http://dev6/bo_app.nsf/DXL courriers scroll.xsl?OpenPage");
    te renvoie une chaîne vide.

    J'ai regarder rapidement, apparemment tu appelles un fichier de base de données Lotus Notes, je n'y connais rien du tout, par curiosité, la forme pour récupérer un fichier nommé "leFichierQueJeveux" c'est ::

    http://monServeur.monFicher.nsf/leFichierQueJeveux?OpenPage

    C'est bien ça ?

    Voilà pour le problème de base ensuite trois petits détails :

    1.
    Ca m'interfère pas sur ton problème(en tout cas chez moi), mais de manière générale, il nest pas conseillé d'utiliser des espaces dans les noms de fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://dev6/bo_app.nsf/DXL courriers scroll.xsl?OpenPage
    Tu pourrais penser à le renommer
    DXL_courriers_scroll.xsl
    ou
    DXLCourriersScroll.xsl
    2.
    Dans ta feuille de style, tu utilises une propriété pour le curseur spécifique à IE, ce qui aboutie à ce que le résultat sous Mozilla n'affiche pas la main sur tes liens.

    Vers la ligne 10 , que tu pourrais remplacer, par , qui est compatible Gecko et IE 6(à toi de faire les tests pour tes navigateurs cibles), ou en rajoutant par exemple une condition dans ta feuille de style sur un paramètre indiquant le navigateur.

    3.
    Avec ta version IE, tu affectes tout le contenu de l'élément :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("idContent").innerHTML = strRet;
    alors que sous Gecko, tu rajoutes au contenu déjà présent ton résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("idContent").appendChild(htmlFragment);
    Ce veut dire que si tu appelles ta fonction 5 fois sous IE avec un contenu valant "a", ton contenu sera "a", alors que sous gecko il vaudra "aaaaa".

    Juste pour avoir le même résultat, tu peux vider le contenu de ton élément avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    document.getElementById("idContent").innerHTML='';
    document.getElementById("idContent").appendChild(htmlFragment);
    Sinon, ça marche nikel je trouve pour ma part.

    Pour information, la documentation de référence sur XSLT et Gecko ::
    http://developer.mozilla.org/en/docs...ransformations


    4.
    Dans ta feuille de style, tu fais référence à un espace de nom "xalan" jamais utilisé, de ce que j'en vois, qui est à priori superflu et que tu peux donc enlever.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xmlns:xalan="http://xml.apache.org/xslt"
    Voilà,
    @+
    Xavier

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/01/2012, 16h18
  2. [mozilla] Transformation XSLT avec javascript...
    Par Spack dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 16/02/2011, 01h04
  3. [FF][XSLT][JS] Affichage xml via xsl sous Mozilla
    Par Eileen dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 26/04/2007, 12h13
  4. XSLT et Mozilla ?
    Par Groove dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 29/05/2003, 01h54
  5. [XSLT]position d'un element de valeur specifique
    Par squat dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 25/07/2002, 16h42

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