IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Lecture d'un fichier xml


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    491
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 491
    Par d�faut Lecture d'un fichier xml
    Bonjour,

    j'essaie de r�cup�rer des infos dans un fichier xml.
    Le fichier est compos� de plusieurs blocs <Layer> structur�s comme ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    <Layer queryable="1">
            <Name>PI_smf:Pluie_2m_fFm0_hr</Name>
            <Title>Pluie_2m_fFm0_hr</Title>
            <Abstract/>
            <KeywordList>
              <Keyword>WCS</Keyword>
              <Keyword>WorldImage</Keyword>
              <Keyword>Pluie_2m_fFm0_hr</Keyword>
            </KeywordList>
            <SRS>EPSG:900913</SRS>
            <!--WKT definition of this CRS:
    PROJCS["WGS84 / Google Mercator", 
      GEOGCS["WGS 84", 
        DATUM["World Geodetic System 1984", 
          SPHEROID["WGS 84", 6378137.0, 298.257223563, AUTHORITY["EPSG","7030"]], 
          AUTHORITY["EPSG","6326"]], 
        PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], 
        UNIT["degree", 0.017453292519943295], 
        AXIS["Longitude", EAST], 
        AXIS["Latitude", NORTH], 
        AUTHORITY["EPSG","4326"]], 
      PROJECTION["Mercator_1SP"], 
      PARAMETER["semi_minor", 6378137.0], 
      PARAMETER["latitude_of_origin", 0.0], 
      PARAMETER["central_meridian", 0.0], 
      PARAMETER["scale_factor", 1.0], 
      PARAMETER["false_easting", 0.0], 
      PARAMETER["false_northing", 0.0], 
      UNIT["m", 1.0], 
      AXIS["x", EAST], 
      AXIS["y", NORTH], 
      AUTHORITY["EPSG","900913"]]-->
            <LatLonBoundingBox minx="55.45" miny="-20.892" maxx="55.544" maxy="-20.855"/>
            <BoundingBox SRS="EPSG:900913" minx="6172642.387" miny="-2379039.946" maxx="6183162.079" maxy="-2374655.632"/>
            <Style>
              <Name>raster</Name>
              <Title>Raster</Title>
              <Abstract>A sample style for rasters, good for displaying imagery</Abstract>
              <LegendURL width="20" height="20">
                <Format>image/png</Format>
                <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://observatoire-iuem.univ-brest.fr:8080/geoserver/wms?request=GetLegendGraphic&amp;format=image%2Fpng&amp;width=20&amp;height=20&amp;layer=Pluie_2m_fFm0_hr"/>
              </LegendURL>
            </Style>
          </Layer>

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var i,j, n_layers, layers = docXML.getElementsByTagName("Layer");
    					n_layers = layers.length;
    					for (i = 0; i < n_layers; i++) {
    						var layer = layers[i];
    						if (layer.hasAttribute('queryable')) {							
    							layerName = layer.getElementsByTagName("Name")[0].firstChild.nodeValue;
     
    							if (layerName.substr(0,2)=="PI") {
    								alert(layerName);
    							}
    						}
     
    					}
    ce morceau de code fonctionne.
    Mais si je veux r�cup�rer l'attribut minx de la balise BoundingBox, j'utilise ce code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var i,j, n_layers, layers = docXML.getElementsByTagName("Layer");
    					n_layers = layers.length;
    					for (i = 0; i < n_layers; i++) {
    						var layer = layers[i];
    						if (layer.hasAttribute('queryable')) {							
    							layerWest = layer.getElementsByTagName("BoundingBox")[0].firstChild.getAttribute("minx");
     
    							if (layerName.substr(0,2)=="PI") {
    								alert(layerWest);
    							}
    						}
     
    					}
    Dans la console d'erreur firefox, j'ai le message d'erreur :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    layer.getElementsByTagName("BoundingBox")[0].firstChild is null
    Est-ce que �a vient du mode de d�claration des balises ?
    Name est d�clar� sous la forme <Name></Name>
    alors que BoundingBox est d�clar� sous la forme <BoundingBox />

    Ou est-ce que c'est tout autre chose ?
    Comment faire ?

    Merci,

    Nico

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par d�faut
    pourquoi faire un firstchild
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    layer.getElementsByTagName("BoundingBox")[0].firstChild
    alors que le boundingBox n'a pas d'enfants ?
    si tu veux r�cup�rer le boudingBox :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    layer.getElementsByTagName("BoundingBox")[0]
    Je te conseille de regarder la tete de ton XML avec firebug, et l'analyseur DOM, tu pourras regarder les enfants des noeud au niveau JS. et voir comment parser tout �a.

    Pour ma part c'est fini le parsing de XML � coup de DOM, j'ai une fonction g�n�rique qui me transforme le XML en objet et rulez

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    491
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 491
    Par d�faut
    exact, pour r�cup�rer l'attribut minx de la balise BoundingBox :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    layer.getElementsByTagName("BoundingBox")[0].getAttribute("minx");
    Merci,

    Nico

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probl�me de lecture d'un fichier XML d'InfoPath
    Par snadus dans le forum InfoPath
    R�ponses: 7
    Dernier message: 06/06/2006, 14h45
  2. Lecture d'un fichier XML de config avec Java
    Par cofy dans le forum Format d'�change (XML, JSON...)
    R�ponses: 6
    Dernier message: 31/01/2006, 15h54
  3. Probl�me de lecture dans un fichier xml
    Par Pyra dans le forum Langage
    R�ponses: 2
    Dernier message: 18/12/2005, 00h13
  4. Probleme de lecture d'un fichier XML
    Par chleuh dans le forum Langage
    R�ponses: 8
    Dernier message: 30/08/2005, 12h04
  5. [C#] [XML] Lecture d'un fichier XML => Combobox
    Par Chad`Chiwa dans le forum Windows Forms
    R�ponses: 8
    Dernier message: 09/03/2005, 08h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo