I’m proud of my tag cloud but MSIE wouldn’t deal with the JavaScript I’ve wrote for parsing this RDF/XML file.
The DOM way to get elements with a special namespace is the
getElementsByTagNameNS(namespace,
tagname)
. IE don’t know what is a namespace and you have
to use the simple getElementsByTagName
way with the XML
notation namespace prefix:tag
name
. (Some examples bellow)
If it seems to be easier, it’s false in the XML sight. The namespace prefix isn’t absolute and anybody can call it like it want. Only URI are absolute.
Le tag cloud dont je suis assez fier ne fonctionnait pas avec MSIE car le script JavaScript lit un fichier RDF/XML contenant des namespaces (espace de noms) différents. La méthode avec Gecko (le moteur de rendu de Firefox) est celle-ci :
// les <p> d’un document XHTML document.getElementsByTagNameNS('http://www.w3.org/1999/xhtml','p'); // les <content:encoded> d’un fil RDF/RSS document.getElementsByTagNameNS('http://purl.org/rss/1.0/modules/content/', 'encoded');
Internet Explorer ne sait pas connait pas les namespaces donc, il faut lui spécifier le nom réel de la balise.
// les <content:encoded> avec IE document.getElementsByTagNameNS('content:encoded');
Cool, c’est vachement plus simple. Et bien non, si c’est plus simple, deux documents peuvent être exactement les mêmes (XML-ment parlant et où les namespace sont définis différemment.
// cet élément XML <html xmlns="http://www.w3.org/1999/xhtml" /> // est équivalent à celui-ci <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" />
NB : il existe également getAttributeNS
qui se comporte de la
même manière.