Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Java et XML

Par willoi le 14/11/2002 à 13:35:40 (#2560082)

je cherche des exemples et /ou des docs sur l'utilisation du XML dans Java.
J'ai deja fait pas mal de recherches et j'arrive à utiliser quelques fonctionnalités

Alors si vous avez des liens et/ou des suggestions

Par Foehn le 14/11/2002 à 13:47:14 (#2560195)

A défaut de comprendre exactement ce que tu souhaites (comment utiliser du XML en Java ou bien quelle utilisation peut-on faire du XML dans une appli Java ?), je peux toujours fournir le site suivant : http://xml.apache.org/ (que tu as déjà probablement dû consulter), sur lequel on trouve entre autre un "parser" XML pour Java : Xerces.

Par willoi le 14/11/2002 à 13:49:45 (#2560214)

La parser je l'ai il est fourni avec le jdk1.4
c'est plutot de la doc qu'il me faut

merci quand meme

Sinon je precise que l'objectif est depuis un programme ralisé en Java c'est lire un fichier XML de facon aisée(genre je parcours pas le fichier à la main) et de pouvoir faire des recherches comme en sql!

Par Aron le 14/11/2002 à 13:59:04 (#2560312)

Y a deux façons de lire un fichier xml. Soit tu le parses en traitant "à la volée" les éléments que tu rencontres. C'est parfait pour transformer des données en autre chose, ou afficher un listing, par exemple. Soit tu montes en mémoire la structure de ton xml. Ca te permet d'avoir une vue dynamique de ton xml, de le triturer comme tu le veux.

Donc premier point, demande toi d'abord ce que tu veux réellement faire avec cet xml. Le premier type de parsing n'est pas très adapté à des requêtes complexes. Sur des cours ou des exemples, je suis étonné que tu ne trouves rien de satisfaisant sur le net.

Par willoi le 14/11/2002 à 14:03:32 (#2560354)

disons c'est surtout sur la partie recherche que je galere
et en particulier sur la classe java.xml.transformer (voir jdk1.4)
qui permet d'effectuer une selection à partir de criteres!

genre en sql ca ferait "select * from table_nom where nom=willoi"

et mon fichier xml ressemblerait à ca en simplifiant
willoi
Aron


etc ...

Par Foehn le 14/11/2002 à 14:07:52 (#2560397)

C'est clair, le parsing XML, c'est lotek au possible :/

Le mieux effectivement pour pouvoir le triturer comme tu veux, c'est de le parser une fois, pour le stocker en mémoire sous la forme que tu désires (un joli singleton avec une lazy initialization pour gérer tout ça si on peut avoir accès aux données de plusieurs endroits dans ton appli). La question qu'il faut se poser dans ces cas là concerne la prise en compte des modifs du fichier XML -> si prise en compte "à chaud", ça peut devenir plus complexe à mettre en place (quoi que... avec la singleton, ça peut le faire, il suffit qu'il garde la datation du fichier en mémoire, et qu'à chaque accès il compare avec la datation du fichier : si le fichier est plus récent, on recharge.)

[edit]

Je ne connais pas le parser du JDK 1.4 (j'en suis resté à utiliser Sax ou Xerces, JDK 1.2 oblige), donc je ne peux pas t'aider sur ces fameuses méthodes de recherche... ceci dit, en gardant tes données en mémoire dans une Hashmap, avec comme clé ton critère principal de recherche, ça doit pouvoir se faire. Le hic intervenant dès que tu commences à vouloir faire du multi-critère. Faut réfléchir à la structure de conservation des données en mémoire puis mettre les mains dans le cambouis pour coder tout ça...

Faudrait p't-être que j'trouve le temps de jeter un noeuil sur le JDK 1.4...

Par Tabassor le 14/11/2002 à 14:21:26 (#2560505)

dans ta définition de balise xml, tu traites bien ton select? parce que ca peut tout simplement venir de cela: tu tapes betement un select, et tu te retrouves avec un curseur, et non un tableau de valeurs.(et la ca n'a rien à voir avec le xml)
je ne m'y connais pas en xml, mais passer d'un select a direct une balise comme ca, je pense qu'il manque 3-4 etapes...

Par Foehn le 14/11/2002 à 14:49:21 (#2560720)

Après survol très rapide de la classe javax.xml.transform.transformer, j'ai l'impression que c'est à mettre en rapport avec XSLT, c'est-à-dire (si ma mémoire est bonne, or je sais qu'elle est mauvaise, et de plus, en passant à XSLT on passe à un sujet que je ne connais pas du tout) une "feuille de style" en quelque sorte qui permet de transformer un fichier XML en autre chose, et réciproquement, et donc de transformer effectivement ton XML en HTML par exemple. Donc, je ne suis pas sûr que cela permette de faire ce que tu souhaites, à savoir l'extraction et la manipulation de données formalisées en XML.

Par willoi le 15/11/2002 à 12:59:07 (#2567689)

Oui foehn on se rapproche de la solution mais le format html je m'en fous un peu(pour le moment)
si xml.Transformer pouvait me mettre le resultat dans un autre DOM ou qqch comme un TreeModel ou HashMap ca serait chouette. Car de là je peux tout mettre dans un JTree par exemple et exploiter le resultat de ma 'requete' comme je veux!

Tabassor --> pour le sql c'est un exemple , je voulais juste dire je veux faire comme en sql ! En effet ya un package en Java qui permet de le faire!

Par Aron le 15/11/2002 à 13:05:07 (#2567736)

Je ne crois pas que transformer fait ce genre de boulot. Ce qu'il te faut c'est DOMParser ou quelque chose dans le genre.

Par willoi le 15/11/2002 à 13:12:09 (#2567813)

En fait j'ai vu une methode tranform qui prend comme parametres domsource et qui renvoie un domresult mais j'arrive pas vraiment à la faire tourner !

Par Foehn le 15/11/2002 à 14:57:19 (#2568614)

Je répète : il me semble que cette classe permet uniquement de faire une transformation de fichier XML (ton DOMSource) en flux de type texte, HTML, etc (ton DOMResult) grâce à l'utilisation d'une fichier XSL. Tu peux trouver ici un vague aperçu et un début d'explication de l'utilisation de cette classe. (c'est en anglais et je l'ai lu en diagonale, j'peux me tromper)

Concernant le JTree, j'ai un peu de mal à voir ce qu'il vient faire là, c'est une classe Swing... donc un composant graphique, si je ne m'abuse.

Quant à la transformation directe de ton fichier en Hashmap, je ne sais pas si c'est possible. Autant le faire à la main, tu auras plus de maîtrise sur ce que tu fais (et surtout tu ne resteras pas bloqué en attendant une solution ;) ) J'dois avoir des bouts de code à te filer si tu veux avoir un début de piste, envoies moi un MP avec une adresse mail si tu veux que je te balance tout ça.

Par willoi le 18/11/2002 à 13:18:37 (#2585934)

Provient du message de Foehn


Concernant le JTree, j'ai un peu de mal à voir ce qu'il vient faire là, c'est une classe Swing... donc un composant graphique, si je ne m'abuse.

Quant à la transformation directe de ton fichier en Hashmap, je ne sais pas si c'est possible. Autant le faire à la main, tu auras plus de maîtrise sur ce que tu fais (et surtout tu ne resteras pas bloqué en attendant une solution ;) ) J'dois avoir des bouts de code à te filer si tu veux avoir un début de piste, envoies moi un MP avec une adresse mail si tu veux que je te balance tout ça.


Bon , le Jtree, le HashMap etc... c'etait des exmples d'utilisations d'une structure arborescente telle que le XML.
Faut bien une interface pour ce fichier XML.
En effet une des fonctionnalités de mon programme va etre de visualiser des images avec leur commentaire et + si affinités et tout ca va etre stocké dans un fichier XML et trié par catégorie.

J'ai deja fait ce genre de choses avec des BDD mais là je veux que mon code fonctionne pour des applets pour des applis sous Windows ou Linux !

JOL Archives 1.0.1
@ JOL / JeuxOnLine