[XML-DOM java] probleme surement tout bète!

probleme surement tout bète! [XML-DOM java] - Java - Programmation

Marsh Posté le 15-03-2003 à 20:41:17    

J'ai un fichier XML un peu comme ca:
 
<movie>
 <title title="1942">Casablanca</title>
 <director>Michael Curtiz</director>
</movie>
 
 
J'arrive à acceder la balise <title> et meme à avoir l'attribut title qui est 1942, mais impossible d'avoir le champ texte (casablanca), est ce que qq sait comment on fait ca ?
 
ma ligne pour afficher l'attribut:
node.getAttribute("title" );
 
j'utilise org.apache.xerces.parsers.DOMParser
 

Reply

Marsh Posté le 15-03-2003 à 20:41:17   

Reply

Marsh Posté le 15-03-2003 à 21:07:32    

parce que sinon je sais qu'il y a la fonction  
node.getNodeValue();
 
mais ca me renvoie null :(  
 
help

Reply

Marsh Posté le 16-03-2003 à 14:57:50    

Casablanca n'est pas la value du node 'title'.
'title' a un enfant de type TEXT_NODE, dont il faut appeler getData()
 
Le code suivant renvoie la valeur du premier texte fils trouvé:
 

Code :
  1. public static String findTextValue(Element e) {
  2.         if (e==null)
  3.         {
  4.             return "[no element]";
  5.         }
  6.         NodeList nodeList = e.getChildNodes();
  7.         for (int i = 0; i < nodeList.getLength(); i++) {
  8.             Node n = nodeList.item(i);
  9.             if (n.getNodeType() == n.TEXT_NODE) {
  10.                 Text textNode = (Text)n;
  11.                 return textNode.getData();
  12.             }
  13.         }
  14.         return "";
  15.     }


 
Remarque : un node peut avoir plusieurs fils de type texte:
 

Code :
  1. <title>
  2. a
  3. <subtitle/>
  4. b
  5. </title>


 
Dans cet exemple, title a trois fils:
un TEXT_NODE avec data = a
un ELEMENT_NODE avec nodeName=subtitle
un autre TEXT_NODE avec data = b

Reply

Marsh Posté le 16-03-2003 à 23:33:10    

quel talent :jap:


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

Marsh Posté le 17-03-2003 à 15:28:56    

Sinon il y a jdom que j´ai trouvé pas mal du tout.. :)


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed