Lire un XML (tag spécifique) avec java

Lire un XML (tag spécifique) avec java - Java - Programmation

Marsh Posté le 15-11-2006 à 17:35:54    

:hello:  
 
Je suis en train d'essayer de faire une fonction Java (dans une Jsp, mais soit ...) qui permet d'aller lire un element en particulier dans un xml
 
Par exemple mon xml :
 
 <data>
 <GUID>  
  <main-process>aaa</main-process>  
  <management-process>ddd</management-process>
  <support-process>zzz</support-process>
 </GUID>
</data>
 
Et j'aimerai avoir une fonction de type String getXmlValue(String Element (= main-process par exemple)) qui me retournerai "aaa"
 
 
Voici ou j'en suis :
 

Code :
  1. public void getXMLText(String strElement){
  2.     try {
  3.  
  4.         DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
  5.         DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
  6.         Document doc = docBuilder.parse (new File("blabla...\\config.xml" ));
  7.     
  8.     
  9.         // normalize text representation
  10.         doc.getDocumentElement ().normalize ();
  11.         
  12.     
  13.     
  14.         NodeList listOfTexts = doc.getElementsByTagName(strElement);
  15.       
  16.          System.out.println(strElement + " %%%%%" + listOfTexts.getLength());
  17.     
  18.         for(int s=0; s<listOfTexts.getLength() ; s++){
  19.             
  20.             System.out.println(s + "%% [" + listOfTexts.item(s).toString());
  21.         }
  22.     
  23.     System.out.println("********************************" );
  24.     }catch (SAXParseException err) {
  25.     System.out.println ("** Parsing error" + ", line "
  26.          + err.getLineNumber () + ", uri " + err.getSystemId ());
  27.     System.out.println(" " + err.getMessage ());
  28.     
  29.     }catch (SAXException e) {
  30.     Exception x = e.getException ();
  31.     ((x == null) ? e : x).printStackTrace ();
  32.     
  33.     }
  34.     
  35.     catch (Exception ex){
  36.         System.out.println("Critical error" );
  37.     }
  38.     
  39. }


 
et mon output est :
 
********************************
main-process %%%%%3
0%% [[main-process: null]
1%% [[main-process: null]
2%% [[main-process: null]
********************************
 
Si quelqu'un pouvais m'aider, je lui en serais infioniment reconnaisant !
 
MErci d'avance :jap:


---------------
.
Reply

Marsh Posté le 15-11-2006 à 17:35:54   

Reply

Marsh Posté le 15-11-2006 à 17:42:55    

Remplace ca :  

Citation :

listOfTexts.item(s).toString()


Par ca :  

Citation :

listOfTexts.item(s).getNodeValue()

Reply

Marsh Posté le 15-11-2006 à 17:44:08    

Et si c'est un fichier de config je crois qu'il y a un truc du genre java.util.Properties et dedans un loadXMLProperties ( je suis pas sur des noms exacts mais je sais que ca existe

Reply

Marsh Posté le 15-11-2006 à 21:43:13    

Merci je vais tester.
 
C'est un fichier de config, oui, mais qui correspond juste à des variables qui doivent pouvoir êtres changées rapidement et facilement. Ce n'est pas un fichier de config d'une appli ... (Je ne sais pas si je suis clair :D)


---------------
.
Reply

Marsh Posté le 16-11-2006 à 08:05:54    

sinon, Digester sur jakarta.apache.org


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 16-11-2006 à 08:11:07    

jbourdellon a écrit :

Remplace ca :  

Citation :

listOfTexts.item(s).toString()


Par ca :  

Citation :

listOfTexts.item(s).getNodeValue()



 
Cela me renvoie "null" :/


---------------
.
Reply

Marsh Posté le 05-12-2006 à 01:22:57    

c'est normal ca te donne la value du node <main-process>, il te faut la value de son fils qui est lui un text node.
 
tu n'as qu'a faire un getChild().getNodeValue() sur ce noeud et ca fonctionnera.

Reply

Sujets relatifs:

Leave a Replay

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