Dominoarea.org Index du Forum Dominoarea.org
 Forum, Téléchargement Lotus Domino/Notes en Français 
 FAQFAQ   PartenairesPartenaires   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs 
 S'enregistrerS'enregistrer   ConnexionConnexion 
La date/heure actuelle est 06 Sep 2010 à 17:16
Toutes les heures sont au format UTC + 1
Voir les nouveaux messages depuis votre dernière visite
Voir les messages sans réponses
 Index du Forum » IBM-Lotus Domino » Trucs et Astuces » Développement » JavaScript
Parser xml
Modérateurs: Modérateur
Poster un nouveau sujet   Répondre au sujet Voir le sujet précédentVoir le sujet suivant
Page 1 sur 1 [1 message]  
Auteur Message
abertisch
Roi des posts
Roi des posts

Inscrit le: 25 Oct 2006
Messages: 675
Warnings: 0 0 Warnings
Spécialité: Développeur
Localisation: Suisse
Pays:
Sexe:
Age: 27
Navigateur:
 Parser xml

Bonjour,

Un petit parser xml en JS pour les vues lotus notes. Il fonctionne avec tous les browser (même ie... Laughing )

fonction "parserXml" à utiliser :

Code:
parserXml("/mabase.nsf/mavue?readviewentries&start=1&count=-1&expandview, mon fichier xsl', le nom div pour afficher le résultat, mon array() de paramètres)


Fichier JS parserXML :

Code:
var transformed = false;
function parserXml(xml, xsl, target, params){
   if (!browserSupportsXSLT())
      return;
      
   // code for IE
   if (window.ActiveXObject) {
      var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
      xslDoc.async = false;
      xslDoc.load(xsl);
      
      //Chargement du document XML
      var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
      xmlDoc.async = false;
      xmlDoc.load(xml);
      var xslt = new ActiveXObject("Msxml2.XSLTemplate");
      xslt.stylesheet = xslDoc;
      var xslProc;
      xslProc = xslt.createProcessor();
      xslProc.input = xmlDoc;
      
      for (parm in params) {
         if(params.hasOwnProperty(parm))
         {
            xslProc.addParameter(parm, params[parm]);
         }
      }
      xslProc.transform();
      $(target).innerHTML = xslProc.output;
   }
   else
   {
      transformed = false;
      var xm = {
         readyState: 4
      };
      
      var xs = {
         readyState: 4
      };
      
      xm = new XMLHttpRequest();
      xm.onreadystatechange = function() {change(xm, xs, target, params);};
      xm.open("GET", xml);
      xm.send(null);
      xs = new XMLHttpRequest();
      xs.onreadystatechange = function() {change(xm, xs, target, params);};
      xs.open("GET", xsl);
      xs.send(null);   
   }
}

var change = function(xm, xs, target, params) {
   if (xm.readyState == 4 && xs.readyState == 4 && !transformed) {
      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);
         for (parm in params) {
            if(params.hasOwnProperty(parm))
            {
               processor.setParameter(null, parm, params[parm]);
            }
         }
         processor.transformDocument(xm.responseXML, xs.responseXML, resultDoc, null);
         var out = new XMLSerializer().serializeToString(resultDoc);
         $(target).update(out);
      }
      else {
         processor.importStylesheet(xs.responseXML);
         for (parm in params) {
            if(params.hasOwnProperty(parm))
            {
               processor.setParameter(null, parm, params[parm]);
            }
         }
         resultDoc = processor.transformToFragment(xm.responseXML, document);
         $(target).innerHTML = '';
         $(target).appendChild(resultDoc);
      }
      transformed = true;
   }
}

function browserSupportsXSLT() {
    var support = false;
    if (document.recalc) { // IE 5+
        support = true;
    }
    else if (window.XMLHttpRequest != undefined && window.XSLTProcessor != undefined) { // Mozilla 0.9.4+, Opera 9+
       var processor = new XSLTProcessor();
       if (typeof processor.transformDocument == 'function') {
           support = window.XMLSerializer != undefined;
       }
       else {
           support = true;
       }
    }
    return support;
}

_________________
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"

MessagePosté le: 15 Mai 2009 à 11:11
 Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail MSN Messenger
 Revenir en haut de page 
Montrer les messages depuis:   Trier par:   
Page 1 sur 1 [1 message]  
Poster un nouveau sujet   Répondre au sujet Voir le sujet précédentVoir le sujet suivant
 Index du Forum » IBM-Lotus Domino » Trucs et Astuces » Développement » JavaScript
Sauter vers:  

Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Vous ne pouvez pas joindre des fichiers dans ce forum
Vous pouvez télécharger des fichiers dans ce forum

phpBB SEO URLs V2

Flux RSS 
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com
Version française de Categories Hierarchy © GGWeb-FR
[ Temps : 0.1401s ][ Requêtes : 13 (0.0058s) ][ GZIP actif - Débogage actif ]