revolunet, conseil NTIC intranet internet  

Xml Tools

Introduction

XmlTools est une petite librairie qui permet de charger dynamiquement et de facon asynchrone un XML, et de le transformer via XSL, si besoin est.

Cette librairie est distribuée sous licence BSD.

Toutes questions ou suggestions sont les bienvenuescontact@revolunet.com

Enjoy ;)

Features list

  • Facile à utiliser
  • Autant de documents XML par page que vous le souhaitez
  • Testé sous IE et Firefox
  • Usage

    Copiez XmlTools.js dans le repertoire de votre site, ajoutez un lien a votre librairie quelque part dans votre code, et utilisez la !

    var monxml = new objetXML(objectName) : declare un parser xml, appelé objectName
    monxml.Load(strUrl) : charge strUrl de facon asynchrone dans votre objetXML
    monxml.callback : appele votre propre fonction avec l'objetXML en cours comme paramètre quand le chargement se termine
    monxml.xml : accès à l'objet XML (ActiveXObject ou mozilla document object)
    monxml.setXslParam(param, value) : Ajoute un paramètre XSL.
    monxml.mergewithxsl(objetXML_xsl_object) : Relie l'objet XML en cours à un objet XSL déclaré de la même manière.
    monxml.Reload() : Recharge le document XML et re-appel la fonction callback
    monxml.isloaded : booléen indiquant si le chargement du XML est fini
    monxml.tostring() : renvoi le XML en cours sous forme de string

    Examples :

    1) chargement de Xml simple (200kb file)
    Statut : pas prêt
    Statut : <span id="xml_status">pas prêt</span><br> <button onclick="start()">Commencer le chargement</button> <script language="javascript"> var xml1 = new objetXML("myxmlobject"); xml1.callback = function(xmlobj) { document.getElementById("xml_status").innerHTML = "XML ready ! "; document.getElementById("xml_status").innerHTML += "received " + xml1.xml.documentElement.selectNodes("descendant::*").length + " nodes !"; } function start() { document.getElementById("xml_status").innerHTML = "loading..."; xml1.Load("example1.xml"); } </script>

    2) Chargement du Xml, avec transformation XSL (200kb file)
    statut xml : pas prêt
    statut xsl : pas prêt
    statut XML : <span id="xml_status2">pas prêt</span><br> statut XSL : <span id="xsl_status">pas prêt</span><br> <span id="xslresult"></span> <button onclick="start2()">Commencer le chargement</button> <script language="javascript"> var xml2 = new objetXML("myxmlobject2"); var xsl = new objetXML("myxslobject"); xml2.callback = function(xmlobj) { document.getElementById("xml_status2").innerHTML = "ready ! waiting for xsl"; // start xsl transformation if xsl data arrived too if (xsl.loaded) dostransform(); } xsl.callback = function(xmlobj) { document.getElementById("xsl_status").innerHTML = "ready ! waiting for xml"; // start xsl transformation if xml data arrived too if (xml2.loaded) dostransform(); } function dostransform() { // do xsl transformation // here you could add any xsl parameters you like : example : xsl.setXslParam("lang", "'FR'") // if you add string parameters, dont forget the quotes in the string document.getElementById("xslresult").innerHTML = xml2.mergewithxsl(xsl); } function start2() { document.getElementById("xslresult").innerHTML =""; document.getElementById("xml_status2").innerHTML = "loading..."; document.getElementById("xsl_status").innerHTML = "loading..."; xml2.Load("example1.xml"); xsl.Load("example.xsl"); } </script>

    Licence :

    Cette librairie est distribuée sous licence BSD.

    Download

  • fichier source (right + save)
  • Commentaires