Parser un fichier xml : compatible avec safari ?

Benoit <[email protected]> Tue, 14 Aug 2007 17:50:44 +0200
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
Bonjour,
J'ai fais un petit script pour parser un fichier xml dans le but de traduire
un site en plusieurs langues. Il fonctionne avec IE, FF et Opéra. Mais pas
avec safari.

Quelqu'un sait il ce qui ne fonctionne pas ?

Voici un exemple de mon script :


index.html :
---------------
<html>
<head>
<script language="javascript" src="translation.js"></script>
</head>

<body onload="loadXML()">
<span id="IpAddress"></span> 195.168.10.20
<br>
<span id="SubNetMask"></span> 255.255.255.0
</body>
</html>


Fichier xml (english.xml) :
----------------------------

<prompt>
 <IpAddress>Ip Address :</IpAddress>
 <SubNetMask>SubNet Mask :</SubNetMask>
 <Essai>Essai :</Essai>
 <Essai1>Essai 1 :</Essai1>
 <English>English :</English>
 <French>French</French>
 <Deutsch>Deutsch :</Deutsch>
</prompt>


Fichier translation.js :
------------------------

function loadXML()
{
    XmlTranslationFile();

    if (window.ActiveXObject)
    { // IE
     xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
     xmlDoc.async=false;
     xmlDoc.load("english.xml");
     translateall();
    }
    else if (document.implementation &&
document.implementation.createDocument)
    { // else ...
     xmlDoc = document.implementation.createDocument("","",null);
     xmlDoc.load("english.xml");
     xmlDoc.onload = translateall;
    }
    else
    {
     alert('Your browser cannot handle this script');
    }
}

function translateall()
{
    var elem;
    var Prompts = new Array;
    var x = xmlDoc.documentElement;

    // Chargement des Id des prompts dans un tableau
    for (i=0 ; i<x.childNodes.length ; i++)
    {
        Prompts[i] = x.childNodes[i].nodeName;
    }

    // Remplacement des "span id" dans le fichier html
    for (i=0; i<Prompts.length; i++)
    {
        elem = document.getElementById(Prompts[i]);
        if (elem)
            document.getElementById(Prompts[i]).innerHTML =
xmlDoc.getElementsByTagName(Prompts[i])[0].childNodes[0].nodeValue;
    }
}

Merci d'avance.

Benoit