Exact ...
De plus, je pense que tu ne t'es pas bien documenté sur le XML et les méthodes d'accès aux noeuds et leurs propriétés ! :-/
Dans ton XML, tu as bien 10 noeuds "Property" ... mais aucun n'a de "value" !
La "value" d'un noeud comme tu tentes de l'accéder est, platement, ce qui se trouve entre les <> </> !
Hors, là, tu vois bien qu'il n'y a rien ! ( < /> )
Donc déjà, ça,
Code :
- var PCode = doce.getElementsByTagName('Property')[1].value;
|
.. tu oublies vite fait ! ( et de toute façon, ça serait même le cas, ça serait nodeValue et pas juste value ! )
Par contre, ces 10 noeuds possèdent tous 2 propriétés; name et value.
Ensuite, faire ".getElementsByTagName('Property')[1]" pour visiblement accéder directement au noeud dont la propriété "name" = "Zone" est une TRES mauvaise idée !
En effet, si un jour tu rajoutes ou si le service fournissant ce XML rajoute le moindre noeud au dessus de ce dernier, tu es foutu, tu seras bon à rechercher et remplacer dans toutes tes sources le [1] par le nouveau numéro de noeud !
Bon .. en gros ( je vais rien faire pour toi, je vais juste te mettre sur la piste ) :
Code :
- var PCode = doce.getElementsByTagName('Property');
|
Ca, c'est ok, ça te retourne un tableau des noeuds "Property" ( en supposant que "doce" soit le bon noeud racine )
Ensuite, tu fais une boucle dans laquelle tu vas analyser chaque élément de ce tableau pour chercher celui qui t'intéresse.
L'accès à des attributs de noeud se fait par la méthode .getAttribute('nom_attribut')
Code :
- boucle {
- si PCode[index].getAttribute('name') égal "Zone" alors {
- // tu as le noeud qu'il te faut et tu peux traiter la valeur
- PCode[index].getAttribute('value')
- }
- }
|
Essaye déjà ça ...
Message édité par Mr Mala le 19-12-2008 à 20:39:23