Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Parser facilement du XML en Javascript

Envoyé par : Pinaraf

Date : 22/05/2004 23:22

Je continue mon petit programme dont j'ai déjà parlé auparavant...

Maintenant, j'ai besoin de parser du XML... L'application utilisée ne doit pas être installée sur la machine de l'utilisateur, donc il y aura des limitations.

Voici le XML à parser :

<?xml version="1.0" encoding="iso-8859-15" ?>
<notes>
   <note titre="aaa">texte1</note>
   <note titre="bbb">texte2</note>
</notes>

Mais comment le parser en Javascript ? Je crée un objet XmlHttpRequest, c'est bon, il arrive à faire la requête. Mais ensuite, impossible d'utiliser l'attribut DocumentXML: seul DocumentText veut bien fonctionner...

Tout ce que je cherche c'est un moyen simple pour afficher à coups d'alert par exemple : "Note "+titre+" : "+texte

Merci d'avance

# Re: Parser facilement du XML en Javascript

Envoyé par : Gabbana

Date : 24/05/2004 11:35

Voici un des mes scripts js, j'épère que celà vas te donne un coup de pouce:

function xmlHttpRequest (url, option)
{
  if (window.XMLHttpRequest)
  {
    var xmlHttp = new XMLHttpRequest ();
    xmlHttp.onload = null;
    xmlHttp.open ("POST", url, false);
    xmlHttp.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.send (option);
  } else if (window.ActiveXObject) {
    var xmlHttp = new ActiveXObject ("Microsoft.XMLHTTP");
    xmlHttp.open ("POST", url, false);
    xmlHttp.setRequestHeader ("Content-type",   "application/x-www-form-urlencoded");
    xmlHttp.send (option);
  }
  var XMLtext = document.getElementById ("XMLtext");
  if (XMLtext)
    XMLtext.value = xmlHttp.responseText;
  if (xmlHttp.status != "200")
    return xmlHttp.status;
  else
    return xmlHttp.responseXML.documentElement;
}
function init ()
{
  var xmlRoot = xmlHttpRequest ("web_interface_pref.php", "action=get&type=box&page=" + pageName);
  for (var i = 0; i < xmlRoot.childNodes.length; i++)
  {
    if (child.nodeType != 3 && child.tagName == "box")
    {
      ...
    }
  }
}

# Re: Parser facilement du XML en Javascript

Envoyé par : laurentj

Date : 25/05/2004 10:40

si tu fais un

return xmlHttp.responseXML;

ça ne fonctionne pas mieux ?

# Re: Parser facilement du XML en Javascript

Envoyé par : Gabbana

Date : 25/05/2004 14:10

c'est égale, mais ici j'avais besoin du "root node". C'est vrais que sa serais plus logique vu le nom de la fonction :)

vincent

# Re: Parser facilement du XML en Javascript

Envoyé par : Pinaraf

Date : 25/05/2004 20:40

Bon je n'ai pas eu besoin de ta fonction...

J'ai cherché aussi de mon côté. Voici la fonction que j'ai obtenue :

var xmlrequete;
try {
xmlrequete = new XMLHttpRequest();
 } catch (e) {
    alert("Erreur interne, désolé !\n");
 } 

function test (){
if (xmlrequete.readyState==4) {
	var liste_notes  = xmlrequete.responseXML.getElementsByTagName ("note");
	var nombre_notes = liste_notes.length;
	alert("Il y a " + nombre_notes + " notes");
	for (var i = 0; i != nombre_notes; i++){
		var note = liste_notes.item(i);
		alert("Titre : " + note.getAttribute("titre"));
		alert("Texte : " + note.textContent);
	}
}
} 
xmlrequete.open("GET", "get_notes.php");
xmlrequete.onreadystatechange=test;
xmlrequete.send(null);

Merci beaucoup à vous... et aussi énormément au débuggeur Javascript intégré à mozilla qui est juste... génial !!!

# Re: Parser facilement du XML en Javascript

Envoyé par : Pinaraf

Date : 26/05/2004 21:11

Grrrr comprend pas là j'ai un problème...

Ça marchait bien avant pourtant...

Pouvez vous regarder http://www.pinaraf.xalp.org/test2.html ?

La console Javascript affiche une erreur de Permission Denied... Mais je comprends pas pourquoi !

Quelqu'un aurait-il une explication ?

# Re: Parser facilement du XML en Javascript

Envoyé par : Gabbana

Date : 27/05/2004 08:01

Bien chez moi il ne trouve pas: http://localhost/notes/get_notes.php logique bien sur.

# Re: Parser facilement du XML en Javascript

Envoyé par : Utilisateur anonyme

Date : 14/11/2005 13:24

Je n'ai pas acces a ta page, ma reponse arrive trop tard je pense... (un an plus tard!!), mais je vais repondre quand meme pour ceux qui chercheraient ce genre de reponse. En fait ton "permission denied" vient surement du fait que tu cherches a acceder a un serveur distant avec xmlhttprequest, et cela a ete bloque du a des problemes de securite rencontres par FF, IE et Cie. Pour regler ce probleme il existe une fonction javascript pour modifier les droits d'acces en demandant l'autorisation au client. (par exemple: netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");) ==> Mais cela marche que si le client l'autorise.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.