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 :

Erreur loading xsl sous netscape


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 Erreur loading xsl sous netscape
    Salut,
    J'ai écris un code en javascript pour parser un fichier xml avec un xsl et afficher le résultat dans un div. J'ai écris ce code pour qu'il fonctionne sur tous les browsers.
    Maintenant, il a fonctionné sous IE, Firefox et Opera.
    Quand j'ai testé sous Netscape 7.2 il se plante dans la ligne de code xslDoc.load(xsl);
    Aussi sous Safari, il n'a pas fonctionné.
    Voici mon code js
    function parserXml(xml, xsl, target, params){
    // code for IE
    if (window.ActiveXObject){
    var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0");
    xslDoc.async = false;
    xslDoc.load(xsl);

    //Chargement du document XML
    var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
    xmlDoc.async = false;
    xmlDoc.load(xml);

    var xslt = new ActiveXObject("Msxml2.XSLTemplate.4.0");
    xslt.stylesheet = xslDoc;

    var xslProc;
    xslProc = xslt.createProcessor();
    xslProc.input = xmlDoc;
    for (parm in params) {
    //alert(parm);
    if (typeof parm != "function")
    xslProc.addParameter(parm, params[parm]);
    }
    xslProc.transform();
    document.getElementById(target).innerHTML=xslProc.output;
    }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument){
    xmlDoc=document.implementation.createDocument("","",null);
    xmlDoc.async=false;
    xmlDoc.load(xml);

    xslDoc = document.implementation.createDocument("","",null);
    xslDoc.async=false;
    xslDoc.load(xsl);

    var xsltProcessor=new XSLTProcessor();
    xsltProcessor.importStylesheet(xslDoc);
    for (parm in params) {
    if (typeof parm != "function")
    xsltProcessor.setParameter(null,parm, params[parm]);
    }
    resultDocument = xsltProcessor.transformToFragment(xmlDoc,document);
    document.getElementById(target).appendChild(resultDocument);
    }
    }

    et voici 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:param name="RHDBURL" />
    <xsl:param name="Lang" select="F" />


    <xsl:template match="/">
    <xsl:apply-templates select="//viewentry"/>
    </xsl:template>

    <xsl:template match="viewentry[@children and not(contains(@position,'.'))]">

    </xsl:template>

    <xsl:template match="viewentry[entrydata/@name = 'place']">
    <div style='border-bottom: solid 1px #AAAAAA; margin-top:15px;'>
    <xsl:choose>
    <xsl:when test="string-length(normalize-space(entrydata))=0" >
    Not Categorized
    </xsl:when>
    <xsl:otherwise>
    <div style='border-bottom: solid 1px #AAAAAA; margin-top:15px;'>
    <xsl:value-of select="entrydata/text"/>
    </div>
    </xsl:otherwise>
    </xsl:choose>
    </div>
    </xsl:template>

    <xsl:template match="viewentry[not(@children)]">
    <xsl:apply-templates select="entrydata"/>
    </xsl:template>

    <xsl:template match="entrydata">
    <xsl:apply-templates select="textlist"/>
    <xsl:apply-templates select="text"/>
    <xsl:apply-templates select="numberlist"/>
    <xsl:apply-templates select="number"/>
    </xsl:template>

    <xsl:template match="textlist">
    <xsl:apply-templates select="text"/>
    </xsl:template>

    <xsl:template match="text">
    <div class='rh_sys-01p1'>
    <A>
    <xsl:attribute name="href">
    <xsl:value-of select="concat(concat($RHDBURL,.),'?OpenDocument&amp;L=',$Lang)" />
    </xsl:attribute>
    <xsl:value-of select="." disable-output-escaping="yes"/>
    </A>
    </div>
    </xsl:template>

    <xsl:template match="numberlist">
    <xsl:apply-templates select="number"/>
    </xsl:template>

    <xsl:template match="number">
    <xsl:value-of select="." disable-output-escaping="yes"/>
    </xsl:template>
    </xsl:stylesheet>

  2. #2
    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 Erreur loading xslt in netscape
    Salut,
    J'ai essayé ce code sous netscape 7.2.

    xm = new XMLHttpRequest();
    xm.onreadystatechange = change;
    xm.open("GET", xml);
    xm.send(null);

    var transformed = false;
    var xm = {
    readyState: 4
    };
    var xs = {
    readyState: 4
    };
    var change = function() {
    if (xm.readyState == 4 && xs.readyState == 4 && !transformed) {
    alert(xs.responseText);
    alert(xs.responseXML);

    xmlDoc = xm.responseXML;
    xsltDoc = xs.responseXML;
    var resultDoc;
    var processor = new XSLTProcessor();
    if (typeof processor.transformDocument == 'function') {
    // obsolete Mozilla interface
    resultDoc = document.implementation.createDocument("", "", null);
    processor.transformDocument(xm.responseXML, xs.responseXML, resultDoc, null);
    var out = new XMLSerializer().serializeToString(resultDoc);
    callback(t);
    document.getElementById(target).innerHTML = out;
    }
    else {
    processor.importStylesheet(xs.responseXML);
    resultDoc = processor.transformToFragment(xm.responseXML, document);
    callback(t);
    document.getElementById(target).innerHTML = '';
    document.getElementById(target).appendChild(resultDoc);
    }

    transformed = true;
    }
    };


    Le résultat de xs.responseText est le contenu du fichier xsl (il est bien affiché) mais xs.responseXML donne null.

    Pouvez vous m'aider.

    Merci

Discussions similaires

  1. Infobulle sous Netscape
    Par nicolb dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/02/2005, 02h03
  2. Erreurs d'exécution sous delphi 5
    Par nkd dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2004, 18h25
  3. Erreur démarrage "filesystem" sous RedHat 8
    Par stewen dans le forum Administration système
    Réponses: 14
    Dernier message: 02/12/2003, 12h37
  4. xsl : sous sommes?
    Par Slash dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 31/03/2003, 14h34
  5. Réponses: 1
    Dernier message: 23/10/2002, 14h40

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