Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Comment récupérer les données d'un fichier rdf avec nsIRDFContainerUtils

Envoyé par : pecb23

Date : 22/03/2005 09:54

Bonjour à tous,

J'essaye de récupérer les données de ma sequence rdf mais je ne vois pas comment faire.

Pour l'instant j'ai le code suivant:

var folderRes =   dfService.GetResource("http://www.test.com/all");
var rdfContainerUtils = Components.classes["@mozilla.org/rdf/container-utils;1"].
createInstance(Components.interfaces.nsIRDFContainerUtils);
var container = rdfContainerUtils.MakeSeq(fileDs, folderRes);
alert(container.GetCount());//nombre d'élément de ma sequence
elements=container.GetElements();
alert(elements.getNext());

Comment faire pour obtenir par exemple la valeur ou le predicat est name.

Merci d'avance pour votre aide!

# Re: Comment récupérer les données d'un fichier rdf avec nsIRDFContainerUtils

Envoyé par : thefab

Date : 26/03/2005 00:42

En admettant que ton RDF ressemble à ça:

<test:personne rdf:about="http://www.test.com/personne/1">
  <test:name>Moi</test:name>
</test:personne>

Tu devrais pouvoir récupérer le contenu de name de la manière suivante (je sais pas si c'est la manière juste mais ça fonctionne si j'ai pas fait d'erreur de copie)

var rdf = Components.classes["@mozilla.org/rdf/rdf-service;1"].
  getService(Components.interfaces.nsIRDFService);
var name = rdf.GetResource("http://www.test.com/name");
var datasource = rdf.GetDataSourceBlocking("file:///c:/personnes.rdf");
var resources = datasource.GetAllResources();
while (resources.hasMoreElements())
  {
  var resource = resources.getNext();
  resource.QueryInterface(Components.interfaces.nsIRDFResource);
  var target = datasource.GetTarget(resource, nom, true);
  target.QueryInterface(Components.interfaces.nsIRDFLiteral);
  alert(target.Value);
  }

Je ne suis pas passé par RDFContainer mais je pense que GetAllResources() renvoie un peu la même chose...

Tu peux aussi aller voir JSLib qui permet de traiter du RDF

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.