[JAVA] Obtenir la valeur d'un attribut

  • Auteur de la discussion Shor-T
  • Date de début

Shor-T

Grand Maître
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 :

[cpp]private String streetName;
private int streetDirection;
private ArrayList <Point> pointList;[/cpp]

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 :

[cpp]<rue nom = "n19-2" sens="2">
<pt num="1872"></pt>
<pt num="13605"></pt>
<pt num="1863"></pt>
<pt num="312"></pt>
<pt num="1894"></pt>
<pt num="242"></pt>
</rue>[/cpp]

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

[cpp]NodeList list = document.getElementsByTagName("rue");

for(int i=0; i<list.getLength(); i++){

Street newRue = new Street();

Node currentChildDad = list.item(i);
int nom_rue = Integer.parseInt(currentChildDad.getTextContent());

for(int j=0; j<list.item(i).getChildNodes().getLength(); j++){

Node currentChildNode = list.item(i).getChildNodes().item(j);

if(currentChildNode.getNodeName().equals("pt")){
newRue.setPtNum( currentChildNode.getNodeValue() );
}
}
}[/cpp]

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 :)
 

soksam

Grand Maître
Bon j'y connait rien mais bon ^^
T'a essayé getAttributes() ?
 

zeb

Modérateur
[strike]Shor-T, ce n'est pas QUOTE mais CODE pour présenter du JAVA :o

Allez, pour le plaisir :
Vous devez être connecté pour voir les images.
[/strike]
:merci:
 

Shor-T

Grand Maître


Non je ne l'ai pas essayé car il me semble qu'il ne correspondait pas à ce que je voulais, mais il faut que je regarde
 

soksam

Grand Maître
Sinon sur developpez.com tu as des tutos qui pourraient surement t'aider, mais t'a déja du matter ;)
 

Shor-T

Grand Maître
Tu avais raison, ça marche avec getAttributes :merci: 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 :

[cpp] ArrayList <Street> streetList = new ArrayList <Street>();
NodeList list = document.getElementsByTagName("rue");

for(int i=0; i<list.getLength(); i++){

Node currentChildDad = list.item(i);
String nom_rue = currentChildDad.getAttributes().item(0).getTextContent();
int sens_rue = Integer.parseInt(currentChildDad.getAttributes().item(1).getTextContent());

for(int j=0; j<list.item(i).getChildNodes().getLength(); j++){

Node currentChildNode = list.item(i).getChildNodes().item(j);
int valeur_num = Integer.parseInt(currentChildNode.getAttributes().item(0).getTextContent());

for(int k=0;k<pointListPoint.size();k++){
Point search_point = pointListPoint.get(k);
if (valeur_num == search_point.getPointNumber()){
tempoListPoint.add(search_point);
}
}[/cpp]

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

Exception in thread "main" java.lang.NullPointerException

Si quelqu'un a une idée :)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 717 991
Membres
1 586 386
Dernier membre
aviateurdesairs
Partager cette page
Haut