Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2814 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  De la manière d'exploiter une api de parsing xml (JAXP)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

De la manière d'exploiter une api de parsing xml (JAXP)

n°718993
El_gringo
Posté le 07-05-2004 à 16:59:41  profilanswer
 

Juste une petite question. J'ai un fichier xml. Par exmple :


<a name="mon a">
  <1 name="mon un">
    <aa name="mon aa"></aa>
    <aa name="mon aba"></aa>
  </1>
  <1 name="autre 1">
    <aa name="mon aa"></aa>
  </1>
</a>


Plus complexe bien sur.
J'ai besoin de garder ça en mémoire, et de bosser dessus.
Si je crée des bean "a", "1", et "aa" pour stocker les données contenues dans l'arbre, au lieu d'utiliser le modèle DOM précédement construit, ça vous choque ?
Genre un bean "a" qui à pour membre une Hashtable référençant les "1" qui lui appartiennent. les bean 1 ont aussi une Hashtable pour référencer les "aa", etc...
Vous pensez que je ferais mieux de ne rien réécrire, et d'utiliser plutôt la structure DOM générée automatiquement, plutôt que de la parcourir pour générer mes beans ?
 
Donnez votre avis svp, même brièvement. c'est important.
Merci.


Message édité par El_gringo le 07-05-2004 à 17:00:40
mood
Publicité
Posté le 07-05-2004 à 16:59:41  profilanswer
 

n°719000
pascal34
one point !
Posté le 07-05-2004 à 17:08:57  profilanswer
 

JDom me semble plus simple et plus léger que DOM
Mais je me trompe peut-être (pour la légèreté).

n°719002
El_gringo
Posté le 07-05-2004 à 17:10:51  profilanswer
 

Je parle pas d'écrire une autre API que DOM. Dsl, je m'exprime mal je crois.
en fait j'oppose de modèles :
1) utiliser la structure DOM obtenue par parsing pour générer des Bean de stockage.
2) conserver la structure DOM, et l'interprêter "à la volée", selon les besoin.
 
Est ce que vous privilègeriez une des 2 méthodes systèmatiquement ?
Est ce qu'une des 2 vous parait mauvaise, si oui, pourquoi ?

n°719005
the real m​oins moins
Posté le 07-05-2004 à 17:13:47  profilanswer
 

des objets, bordel, des objets!


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°719015
pascal34
one point !
Posté le 07-05-2004 à 17:18:35  profilanswer
 

El_gringo a écrit :

Je parle pas d'écrire une autre API que DOM


 
Moi non plus.
JDom est une API Java qui construit une hiérarchie d'objets en mémoire, comme DOM, mais c'est plus facile à utiliser car les éléménts XML sont un peu plus typés (Element, Attribute, Text, CDATA, etc.) alors qu'avec DOM tu récupère très souvent des Node qui peuvent être n'importe quoi (aussi bien un Element qu'un noeud texte). C'est chiant, faut caster de partout.

n°719016
El_gringo
Posté le 07-05-2004 à 17:18:39  profilanswer
 

Mais dans la solution 2, quand je parle de l'interpr^éter à la volée, ça utilise des objets aussi. Juste un converse le stockage dans l'arbre DOM, et les objets "aa", "1", .. servent juste à encapsuler l'arbre DOM.
(je précise que je soutient pas cette méthode. justement. je cherche des argument contre...)

n°719019
El_gringo
Posté le 07-05-2004 à 17:19:44  profilanswer
 

pascal34 a écrit :

Moi non plus.
JDom est une API Java qui construit une hiérarchie d'objets en mémoire, comme DOM, mais c'est plus facile à utiliser car les éléménts XML sont un peu plus typés (Element, Attribute, Text, CDATA, etc.) alors qu'avec DOM tu récupère très souvent des Node qui peuvent être n'importe quoi (aussi bien un Element qu'un noeud texte). C'est chiant, faut caster de partout.


 
Merci. Mais c'est pas la question que je me pose.

n°719021
the real m​oins moins
Posté le 07-05-2004 à 17:19:58  profilanswer
 

bah tu fais de la programmation orientée objet non?
bah voilà ton argument.
 
(client.getName() me parait plus net que clientDoc.getChild("name" ).getTextValue() nan? [:mlc])


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°719026
pascal34
one point !
Posté le 07-05-2004 à 17:21:54  profilanswer
 

El_gringo a écrit :

Mais dans la solution 2, quand je parle de l'interpr^éter à la volée, ça utilise des objets aussi. Juste un converse le stockage dans l'arbre DOM, et les objets "aa", "1", .. servent juste à encapsuler l'arbre DOM.
(je précise que je soutient pas cette méthode. justement. je cherche des argument contre...)


 
Faut pas être pour ou contre.
Simplement c'est pas optimal d'obtenir une arbo DOM pour la convertir
en une autre arbo d'objets !!!
Ca serait plus efficace de parser avec SAX si tu veux construire ta propre arbo.
 
C'est ce que j'ai du faire pour un projet d'editeur XML spécialisé

n°719030
El_gringo
Posté le 07-05-2004 à 17:23:56  profilanswer
 

En fait je suis pas assez précis dnas mon expliquation.
Dans les 2 cas on à un objet "Client", avec une méthode getName.
Mais dans la méthode 1 on utilise un arbre DOM pour générer des objets qui reproduisent la structure de l'arbre (avec des Hashtable) en stockant les sous objets.
Dans la méthode 2 on généré les objets au besoin, en passant le noeud qui correspond au "client" (par exemple) au constructeur. Et la méthode client.getName() contiendra le code this.getChild("name" ).getTextValue()
 
Tu vois ce que je veux dire ?

mood
Publicité
Posté le 07-05-2004 à 17:23:56  profilanswer
 

n°719032
the real m​oins moins
Posté le 07-05-2004 à 17:24:38  profilanswer
 

bon ben alors les 2 methodes sentent des pieds [:itm]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°719033
El_gringo
Posté le 07-05-2004 à 17:24:40  profilanswer
 

...2 avis opposés entre -- et Pascal ?

n°719035
El_gringo
Posté le 07-05-2004 à 17:24:58  profilanswer
 

the real moins moins a écrit :

bon ben alors les 2 methodes sentent des pieds [:itm]


 
Et c quoi qui sent bon ?

n°719037
the real m​oins moins
Posté le 07-05-2004 à 17:25:39  profilanswer
 

du "vrai" objet, et passage à l'xml seulement en entrée et sortie, c-a-d quand t'as effectivement besoin d'xml


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°719038
El_gringo
Posté le 07-05-2004 à 17:27:09  profilanswer
 

the real moins moins a écrit :

du "vrai" objet, et passage à l'xml seulement en entrée et sortie, c-a-d quand t'as effectivement besoin d'xml


 
Ben la 1ère méthode c'est ça.
XML en entrée.
reproduction de la hérarchie dans des bean spécifiques.
Abandon du modèle DOM constuit.
 
 
XML généré si nécessaire.

n°719040
pascal34
one point !
Posté le 07-05-2004 à 17:28:31  profilanswer
 

the real moins moins a écrit :

du "vrai" objet, et passage à l'xml seulement en entrée et sortie, c-a-d quand t'as effectivement besoin d'xml


 
Là je suis d'accord. XML doit être un format de sérialisation comme un autre pour une appli.

n°719041
El_gringo
Posté le 07-05-2004 à 17:28:55  profilanswer
 

pascal34 a écrit :

Là je suis d'accord. XML doit être un format de sérialisation comme un autre pour une appli.


 
c pas ce que j'ai compris que tu disais...

n°719042
pascal34
one point !
Posté le 07-05-2004 à 17:31:15  profilanswer
 

El_gringo a écrit :

c pas ce que j'ai compris que tu disais...


 
Une fois que tu as analysé ton XML (avec DOM, SAX ou autre), tu travailles avec les objets , plus directement avec le XML.

n°719044
the real m​oins moins
Posté le 07-05-2004 à 17:34:08  profilanswer
 

El_gringo a écrit :

Ben la 1ère méthode c'est ça.
XML en entrée.
reproduction de la hérarchie dans des bean spécifiques.

ha, ton histoire d'hashtable m'a laissé pensé le contraire.
bah voilà


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°719470
El_gringo
Posté le 08-05-2004 à 15:02:24  profilanswer
 

the real moins moins a écrit :

ha, ton histoire d'hashtable m'a laissé pensé le contraire.
bah voilà


 
Mon histoire d'Hashtable, c'est pour reproduire les dépendances induite par le XML, dans mes bean.
Exemple :
<entreprise name="Microsoft">
  <employe name="Bill"/>
  <employe name="Roberto"/>
<entreprise>
 
Ben je vais avoir une classe Entreprise, qui à 2 attributs :
- une String : name
- une Hashtable : employe, dans laquelle la clé est un String (nom d'employé), et la valeur est un bean "Employe".
C'est logique ça, vous trouvez pas ?

n°719483
the real m​oins moins
Posté le 08-05-2004 à 15:40:34  profilanswer
 

ça peut se défendre oui ;)  
mais il me semble qu'il faut penser dans le sens inverse: définir d'abord ton objet, ensuite l'xml..


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°719484
the real m​oins moins
Posté le 08-05-2004 à 15:40:54  profilanswer
 

sinon, employé, en anglais c'est employee avec 2 e ;)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°720213
El_gringo
Posté le 10-05-2004 à 08:49:10  profilanswer
 

the real moins moins a écrit :

ça peut se défendre oui ;)  
mais il me semble qu'il faut penser dans le sens inverse: définir d'abord ton objet, ensuite l'xml..


 
Tant mieux, tant mieux.  
Merci pour ces commentaires.

n°720214
El_gringo
Posté le 10-05-2004 à 08:50:16  profilanswer
 

the real moins moins a écrit :

sinon, employé, en anglais c'est employee avec 2 e ;)


 
C'est parce que j'écrivais en franglais. dans cette langue, employe, c comme ça. :hello:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  De la manière d'exploiter une api de parsing xml (JAXP)

 

Sujets relatifs
Exploiter un résultat avec FIND...[PHP] Manière de crypter efficacement un mot de passe
Quelle est la meilleure manière de détecter Opera ?rediriger un site de maniere transparente
[Java]Declarer des variables de maniere dynamique?XML en général & parsing SAX
[ORACLE] : comment exploiter les fichiers ".ARC" ???Proteger des pages par un password, maniere sure
manière la plus rapide de placer un bitInstaller JAXP sous Linux
Plus de sujets relatifs à : De la manière d'exploiter une api de parsing xml (JAXP)


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)