Se connecter avec
S'enregistrer | Connectez-vous

[JAVA] Obtenir la valeur d'un attribut

Dernière réponse : dans Programmation

Bonjour à tous :hello:  !!!

Je fais appel aux programmeurs PPCéens concernant l'importation d'un fichier xml en JAVA.

Le but de mon programme (enfin une partie) est d'importer le fichier xml en utilisant des classes définies par moi afin de les ranger pour la suite du programme, donc chaque rue est composée de :

  1. private String streetName;
  2. private int streetDirection;
  3. private ArrayList <Point> pointList;


La liste de point contient des points (que je ne détaille pas ici ce n'est pas le but, à moins que vous en ayez besoin).

Voici une partie de la forme du fichier xml :

  1. <rue nom = "n19-2" sens="2">
  2. <pt num="1872"></pt>
  3. <pt num="13605"></pt>
  4. <pt num="1863"></pt>
  5. <pt num="312"></pt>
  6. <pt num="1894"></pt>
  7. <pt num="242"></pt>
  8. </rue>


Le truc est que j'aimerais récupérer la valeur de nom et de sens afin de les mettre dans une classe "Street".

  1. NodeList list = document.getElementsByTagName("rue");
  2.  
  3. for(int i=0; i<list.getLength(); i++){
  4.  
  5. Street newRue = new Street();
  6.  
  7. Node currentChildDad = list.item(i);
  8. [b] int nom_rue = Integer.parseInt(currentChildDad.getTextContent());[/b]
  9.  
  10. for(int j=0; j<list.item(i).getChildNodes().getLength(); j++){
  11.  
  12. Node currentChildNode = list.item(i).getChildNodes().item(j);
  13.  
  14. if(currentChildNode.getNodeName().equals("pt")){
  15. newRue.setPtNum( currentChildNode.getNodeValue() );
  16. }
  17. }
  18. }


Voici le code permettant de faire ça (il n'est peut être pas complet mais pour l'instant je ne bute pas sur ça ;) ), par contre j'aimerais savoir quelle est la méthode qui permet de récupérer la valeur d'un attribut d'un noeud sous DOM, car ni getTextContent, ni GetNodeValue ne fonctionne avec la valeur d'un attribut passé en paramètre (à moins que je me trompe, auquel cas merci de me dire comment faire).

merci :) 

Autres pages sur : java obtenir valeur attribut

Lassé par la pub ? Créez un compte

Tu avais raison, ça marche avec getAttributes :jap:  Il fallait en fait utiliser getAttributes().item(n).getTextContent() :) 

Maintenant que ça marche, j'ai un ptit soucis au moment de lancer ma classe, voici la fonction en question :

  1. ArrayList <Street> streetList = new ArrayList <Street>();
  2. NodeList list = document.getElementsByTagName("rue");
  3.  
  4. for(int i=0; i<list.getLength(); i++){
  5.  
  6. Node currentChildDad = list.item(i);
  7. String nom_rue = currentChildDad.getAttributes().item(0).getTextContent();
  8. int sens_rue = Integer.parseInt(currentChildDad.getAttributes().item(1).getTextContent());
  9.  
  10. for(int j=0; j<list.item(i).getChildNodes().getLength(); j++){
  11.  
  12. Node currentChildNode = list.item(i).getChildNodes().item(j);
  13. int valeur_num = Integer.parseInt(currentChildNode.getAttributes().item(0).getTextContent());
  14.  
  15. for(int k=0;k<pointListPoint.size();k++){
  16. Point search_point = pointListPoint.get(k);
  17. if (valeur_num == search_point.getPointNumber()){
  18. tempoListPoint.add(search_point);
  19. }
  20. }


Et à la ligne 13, eclipse me dit ça :

Citation :
Exception in thread "main" java.lang.NullPointerException


Si quelqu'un a une idée :) 
Lassé par la pub ? Créez un compte