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

  FORUM HardWare.fr
  Programmation
  Java

  [JDom] récupérer le contenu d'un balise...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JDom] récupérer le contenu d'un balise...

n°160632
z0rglub
Posté le 17-06-2002 à 11:50:24  profilanswer
 

salut, je cherche à récupérer simplement le contenu de ma balise. exemple :

Code :
  1. <root>
  2.      <nodelevel1>test</nodelevel1>
  3. </root>


 
puis dans ma classe, je fais :  

Code :
  1. SAXBuilder builder = new SAXBuilder( false );
  2. Document doc = builder.build( FileList[i] );
  3. Element root = doc.getRootElement();
  4. System.out.println( root.getChild( "nodelevel1" ).getContent() );


 
et voilà le résultat :

Code :
  1. [[Text: test]]


 
Alors que moi, je souhaite juste avoir "test" en sortie... alors, j'ai pas trop envie de traiter la chaîne, d'autant que lorsqu'il s'agit d'un attribut d'une balise, ça marche sans pb en faisant

Code :
  1. getAttribute( "monAttribut" ).getValue()


 
vous sauriez m'aider ?


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
mood
Publicité
Posté le 17-06-2002 à 11:50:24  profilanswer
 

n°160644
darklord
You're welcome
Posté le 17-06-2002 à 11:55:02  profilanswer
 

est ce que tu as pris la peine de regarde la javadoc pour savoir ce que getContent() renvoie au moins ???
 
mais c'est pas vrai, y a donc personne qui utilise la javadoc avant de poster ici ou quoi ?


---------------
Just because you feel good does not make you right
n°160648
z0rglub
Posté le 17-06-2002 à 11:56:50  profilanswer
 

si j'ai lu la javadoc, et ça renvoie une list tout conne, mais je veux savoir si y'a pas moyen de récupérer directement le contenu...


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°160649
darklord
You're welcome
Posté le 17-06-2002 à 11:57:09  profilanswer
 

getContent() te renvoie une java.util.List !!!!
 

Citation :


This returns the full content of the element as a List which may contain objects of type Text, Element, Comment, ProcessingInstruction, CDATA, and EntityRef.


 
En l'occurrence tu dois prendre le Text le caster et faire getText() dessus


---------------
Just because you feel good does not make you right
n°160650
darklord
You're welcome
Posté le 17-06-2002 à 11:58:53  profilanswer
 

z0rglub a écrit a écrit :

si j'ai lu la javadoc, et ça renvoie une list tout conne, mais je veux savoir si y'a pas moyen de récupérer directement le contenu...  




 
pour ce que tu veux faire il s'agit bien plus que d'une list tout conne comme tu dis. Si tu souhaites récpérer le texte il faut pas uniquement te baser sur ce que la méthode toString() de java.util.list renvoie
 
Imagine si tu veux trouver le texte d'un élémnet et que cet élément a des sous élements. Avec ta méthode, tu vas imprimer tout les sous-éléments + le texte de l'élément.


---------------
Just because you feel good does not make you right
n°160653
z0rglub
Posté le 17-06-2002 à 12:01:17  profilanswer
 

oui, je vois bien, c'est juste que je connaît ma doctype, et je sais qu'il n'y a pas de sous élément... mais je comprend le besoin de généricité... en attendant, je fais des tests pour récupérer juste le contenu... (je sais que le getContent().get( 0 ) donne un objet de la classe org.jdom.Text


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°160656
z0rglub
Posté le 17-06-2002 à 12:03:23  profilanswer
 

ok, c'est bon, merci Darklord (vais-je devenir ton boolay ? )

Code :
  1. System.out.println( ( ( Text )root.getChild( "nodelevel1" ).getContent().get( 0 ) ).getText() );


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°160657
darklord
You're welcome
Posté le 17-06-2002 à 12:03:38  profilanswer
 

ce que tu peux faire c'est itérer sur ta liste jusqu'à  ce que l'éléménet soit une instace de Text
 
if (el instanceof Text)
 
et lorsque c'est bon tu appelles getText() dessus et tu as le résultat.  
 
Je te conseille de faire ca parce que changer le code pour ajouter un élémnet c'est pas super flexible.


---------------
Just because you feel good does not make you right
n°160660
darklord
You're welcome
Posté le 17-06-2002 à 12:04:27  profilanswer
 

z0rglub a écrit a écrit :

ok, c'est bon, merci Darklord (vais-je devenir ton boolay ? )

Code :
  1. System.out.println( ( ( Text )root.getChild( "nodelevel1" ).getContent().get( 0 ) ).getText() );

 




 
si tu continues à programmer comme ça oui ;)
 
Allez sans rancune mais bon le code là est super spécifique et c'est dommage de gacher un si bel outil comme ca. Utilise des méthodes plus flexibles qui ne font pas prérequis sur le contenu d'un élément.


---------------
Just because you feel good does not make you right
n°160674
z0rglub
Posté le 17-06-2002 à 12:08:45  profilanswer
 

DarkLord a écrit a écrit :

Allez sans rancune mais bon le code là est super spécifique et c'est dommage de gacher un si bel outil comme ca. Utilise des méthodes plus flexibles qui ne font pas prérequis sur le contenu d'un élément.



ok, je suis complètement d'accord avec toi, je vais faire plus générique (autant que faire se peut, parce que je dois qd même programmer vite, parce que mon responsable veut pas que je m'éternise là dessus, il veut que ça marche, un point c'est tout, moi je préfère quand ça marche bien, mais bon...)


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
mood
Publicité
Posté le 17-06-2002 à 12:08:45  profilanswer
 

n°160681
darklord
You're welcome
Posté le 17-06-2002 à 12:14:39  profilanswer
 

tu verras comme ce sera plus simple lorque tu devras étendre les fonctionnalités du système. Avec ton système actuel, il suffit de rajouter un attribut pour qu'il te balance une jolie CastException ...
 
Le genre  de bug que tu mettras 4h à trouver si ton appli est plus ou moins importante
 
Crois moi c'est du temps précieux sauvé pour l'avenir. Et ton boss est vraiment con de réagir comme ça. Te mettre la pression ok mais te faire coder n'importe comment, merci bien!


---------------
Just because you feel good does not make you right
n°160683
z0rglub
Posté le 17-06-2002 à 12:17:34  profilanswer
 

j'éxagère un peu, mais c'est vrai que parfois je vois du code qu'il a écrit y'a un moment c n'importe koi, mais on le change pas parce que'on sait qu'il marche... c une façon de voir les choses....


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°160686
darklord
You're welcome
Posté le 17-06-2002 à 12:19:37  profilanswer
 

z0rglub a écrit a écrit :

j'éxagère un peu, mais c'est vrai que parfois je vois du code qu'il a écrit y'a un moment c n'importe koi, mais on le change pas parce que'on sait qu'il marche... c une façon de voir les choses....  




 
 
ouais je connais j'ai du code dans ce gout là


---------------
Just because you feel good does not make you right
n°160691
z0rglub
Posté le 17-06-2002 à 12:22:59  profilanswer
 

pendant que j'y pense... là j'utilise 2 jars : jdom.jar (150 Ko) et xerces.jar (1500 Ko environ).
Y'a t-il un moyen d'utiliser des jar plus petits ? (pas pour cette appli, car c'est du servlet, mais pour un autre projet à moi, sous forme d'applet)


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°160694
darklord
You're welcome
Posté le 17-06-2002 à 12:24:48  profilanswer
 

justement je me posais la meme question.


---------------
Just because you feel good does not make you right

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

  [JDom] récupérer le contenu d'un balise...

 

Sujets relatifs
Récupérer le nom de l'OS sur la machine cliente .... éxecuter le contenu d'une variable !! corsé [resolu]
Affichage du contenu d'un fichier texte[ DHTML ] - mise a jour du contenu d'un layer (innerHTML)
[delphi] récupérer le séparateur décimal de windows [résolu][HTML,JS] Propriété id pour réactualiser le contenu d'un span ou div
Récupérer la temperature du CPU[VB] comment récupérer le handle d'une fenêtre ... ????
[MySQL] Comment recupérer les noms de champ d'une table ?Recuperer le code source ?
Plus de sujets relatifs à : [JDom] récupérer le contenu d'un balise...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR