Envoyé par : Papagrieng
Date : 30/05/2006 15:47
Bonjour à tous !
Je suis relativement nouveau sous Xul. Dans le programme suivant, je lis un triplet à partir d'un fichier RDF. Le problème n'est pas lié au RDF mais à Javascript. "dumpln" effectue un affichage avec dump:
dumpln(target.Value); if (target instanceof Components.interfaces.nsIRDFLiteral){ dumpln(target.Value); } dumpln(target.Value);
Je ne comprends pas pourquoi, à la première instruction dumpln(target.Value), je lis "undefined" dans la console; et pourquoi à la seconde instruction dumpln(target.value) (juste après le test "instanceof"), je lis la bonne valeur dans la console.
Est-ce que quelqu'un a une explication logique ?
Voici les lignes entières:
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. getService(Components.interfaces.nsIRDFService); var p1 = rdfService.GetResource("http://www.atosorigin.com/adrien/maP1"); var name = rdfService.GetResource("http://www.atosorigin.com/adrien/rdf#name"); var ds = rdfService.GetDataSource("chrome://e/content/db1.rdf"); var target = ds.GetTarget(p1, name, true); dumpln(target); //Renvoie [xpconnect wrapped nsIRDFNode] dumpln(target.Value); //Renvoie undefined dumpln(target.Value); //Renvoie toujours undefined if (target instanceof Components.interfaces.nsIRDFLiteral){ dumpln(target.Value); //Renvoie la bonne valeur } dumpln(target.Value); //Renvoie la bonne valeur
Envoyé par : thefab
Date : 30/05/2006 15:56
instanceof agit de la même manière qu'un QueryInterface() pour savoir si un objet est d'un certain type.
Si tu fais:
dumpln(target.Value); target.QueryInterface(Components.interfaces.nsIRDFLiteral); dumpln(target.Value);
Tu devrais arriver au même résultat.
Envoyé par : thefab
Date : 30/05/2006 16:00
http://xulfr.org/xulplanet/mozsdk/rdfque(..) > Recherche Des Cibles > 4ème et 5ème paragraphe pour plus de détail
Envoyé par : Papagrieng
Date : 30/05/2006 16:21
Ah bon, d'accord. Il me manquait donc l'interface. Merci !
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.