Utiliser Xquery avec Java

arnaudlapeyrade Messages postés 3 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 28 mai 2005 - 28 mai 2005 à 14:32
Bob_smil Messages postés 1 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 28 avril 2008 - 28 avril 2008 à 23:54
Bonjour,



Je développe une appli Java avec une base de donnée XML. Je veux
utiliser Xquery mais j'ai beaucoup de mal à trouver un tuto indiquant
comment utiliser Xquery avec Java.



Je souhaite ajouter un élément. Je me suis inspiré d'un exemple mais ça
ne marche pas. Si vous ne connaissez pas de ttuto pourriez vous jeter
un coup d'oeil au code? Merci



String driver = "org.exist.xmldb.DatabaseImpl";

Class cl =
Class.forName(driver);


Database database = (Database)cl.newInstance();

DatabaseManager.registerDatabase(database);

System.out.println("setting Class c");



Collection col =
DatabaseManager.getCollection("xmldb:exist://localhost:8080/exist/xmlrpc/db/ImageBrowser");

if (col != null)

{

System.out.println("getting collection");

}

XQueryService service = (XQueryService) col.getService("XQueryService", "1.0");

service.setProperty("indent", "yes");



String xupdate =
"update insert"+""+

contextrequest(context.context.toString()) +

peoplerequest(people.people.toString()) +

placerequest(place.place) +

colorrequest(color.color) +



propertiesrequest(properties.author,properties.date,properties.quality)+

"

"+

"into input()/Images";



System.out.println("getting service");

ResourceSet result = service.query(xupdate);

ResourceIterator i = result.getIterator();

while(i.hasMoreResources()) {

Resource r = i.nextResource();

System.out.println((String)r.getContent());

}

5 réponses

arnaudlapeyrade Messages postés 3 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 28 mai 2005
28 mai 2005 à 14:47
Pour être plus exacte c'est cette ligne qui poserait problème:



XQueryService service = (XQueryService) col.getService("XQueryService", "1.0");
0
arnaudlapeyrade Messages postés 3 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 28 mai 2005
28 mai 2005 à 14:59
j'obtiens l'exception suivant:



java.lang.ClassCastException: org.exist.xmldb.RemoteXPathQueryService
0
banismed Messages postés 9 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 26 mai 2008
16 mars 2008 à 09:59
salut je veut une petit exemple de xquery sous java
merci
0
banismed Messages postés 9 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 26 mai 2008
19 mars 2008 à 16:00
salut tt le monde est ce que utilisation de xquery dans java a besion une api pour fonctionner
si oui alors je le avec une petit exemple pour l'utiliser

merci B..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bob_smil Messages postés 1 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 28 avril 2008
28 avril 2008 à 23:54
import org.xmldb.api.base.*;
import org.xmldb.api.modules.*;
import org.xmldb.api.*;
import org.exist.xmldb.XQueryService;
import java.io.*;


public class QueryExample {
    public static void main(String args[]) throws Exception {
        String driver = "org.exist.xmldb.DatabaseImpl";
        Class cl = Class.forName(driver);   
        Database database = (Database)cl.newInstance();
        DatabaseManager.registerDatabase(database);
       
        Collection col =
            DatabaseManager.getCollection(
                "xmldb:exist://localhost:8080/exist/xmlrpc/db"
            );
        XQueryService service =
            (XQueryService) col.getService("XQueryService", "1.0");
        service.setProperty("indent", "yes");
       
        try{
            BufferedReader in = new BufferedReader(new FileReader("d://test.xquery")); //put your xquery file path here
            //make sure the query path in your xquery is correct
            String inContent = "";
            String temp = in.readLine();
            while (temp != null){
                inContent = inContent + temp + "\n";
                temp = in.readLine();
            }
            in.close();
            //System.out.println(inContent);
            ResourceSet result = service.query(inContent);
            ResourceIterator i = result.getIterator();
            while(i.hasMoreResources()) {
                Resource r = i.nextResource();
                System.out.println((String)r.getContent());
            }
        }catch(IOException e){
            System.out.println("read file error.");
        }
     }
}
j essayé d developpé un example voila
voila une tit solution j espere kel pourré t aidé:)
et si ta pu avancé  et ta trouvé d otre solution j esper  ke m le passeré
merci;)
0
Rejoignez-nous