Extraire donné XML - HTML/CSS - Programmation
Marsh Posté le 19-12-2008 à 12:25:26
Heureusement que doce est un Objet
Marsh Posté le 19-12-2008 à 12:33:39
Via FireBug par exemple, met un espion dessus pour voir les différentes propriétés. Et la référence de l'API DOM
Marsh Posté le 19-12-2008 à 12:37:24
A savoir que quand tu parcourt un object xml en javascript si je me souviens viens tu dois parcourir les parents avant les enfants
essaye :
Code :
|
sinon utilise firebug pour parcourir les objects et donc voir ceux qu'il contient a chaque niveau
Marsh Posté le 19-12-2008 à 17:41:20
bon voici une impression d'ecran de la variable "doce"
l'erreur est :
Code :
|
le code :
Code :
|
je comprend pas pourquoi il ne trouve pas featureinfocollection
Marsh Posté le 19-12-2008 à 18:46:52
On n'accède pas au éléments comme ça (doce.featureinfocollection), ce n'est pas comme l'API DOM HTML qui définit ce genre de propriétés. Il faut utiliser getElementsByTagName et ce genre de trucs.
Et featureinfocollection n'est pas enfant de doce, c'est doce... documentElement est l'élément racine
Marsh Posté le 19-12-2008 à 20:38:12
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 :
|
.. 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 :
|
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 :
|
Essaye déjà ça ...
Marsh Posté le 20-12-2008 à 22:46:04
Mr Mala et FlorentG et ionik, merci merci
Je teste cela des lundi, franchement super explication
Marsh Posté le 19-12-2008 à 11:42:49
Bonjour, j'ai un serveur MapGuide OS, je réucpére un xml de ce genre :
<FeatureInfoCollection>
<FeatureInfo layer="Samples/Sheboygan/Layers/Parcels">
<Property name="Description1" value="SEC 22 T15N R23E"/>
<Property name="Zone" value="RES"/>
<Property name="Acreage" value="0.29"/>
<Property name="Lot Dimensions" value="60X211"/>
<Property name="Owner" value="LEMKE, JOSHUA & EMIL"/>
<Property name="Description2" value="PRT NW 1/4 SW 1/4 COM IN E"/>
<Property name="Description3" value="LN OF N EVANS ST 797.3' S OF"/>
<Property name="Billing Address" value="639 N EVANS ST"/>
<Property name="Lot Size (SqFt)" value="12660"/>
<Property name="Description4" value="ITS INTERSECTION WITH S LN"/>
</FeatureInfo>
</FeatureInfoCollection>
Je voudrais récupéré la valeur du name="Zone"
J'ai essayé deux syntaxe mais sans succé
Quand je fais un alert de "doce", il m'affiche [Object Elment]
Merci d'avance
---------------