Bonsoir,
j'ai quelques problèmes pour récupérer des éléments en utilisant une requête avec Linq to XML
tout d'abord mon XML :
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
|
<?xml version="1.0"?>
<configuration>
<!-- configuration de l'objet carte -->
<map initialExtent="-122.2 24.89 -70.59 46.92" fullExtent="-150 -50 150 50">
<!-- couches en cache -->
<layer id="Street_layer" type="Tiled" label="Couche rue" visible="true" alpha="1" ordre="1" url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/>
<layer id="physical_layer" type="Tiled" label="Couche topographique" visible="true" alpha="1" ordre="2" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer"/>
<layer id="imagery_layer" type="Tiled" label="Couche vue satellite" visible="true" alpha="1" ordre="3" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"/>
<!-- couches dynamiques -->
<layer id="world_population_layer" type="Dynamic" label="Couche population mondiale" visible="true" alpha="1" ordre="4" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Population_World/MapServer"/>
<layer id="USA_census_layer" type="Dynamic" label="Couche recensement américain" visible="false" alpha="1" ordre="5" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"/>
</map>
<!-- configuration des widgets -->
<widgets>
</widgets>
</configuration> |
et je souhaite récupérer tous les éléments de type "layer"
Or la seule méthode que j'ai trouvé c'est :
1 2 3 4 5 6 7 8 9 10 11 12
|
var queryTiles = from layer in configuration.Descendants("map").Elements("layer")
where ((string)layer.Attribute("type")).Contains("Tiled")
orderby (string)layer.Attribute("ordre") descending
select new
{
id = (string)layer.Attribute("id"),
label = (string)layer.Attribute("label"),
visible = (Boolean)layer.Attribute("visible"),
alpha = (float)layer.Attribute("alpha"),
url = (string)layer.Attribute("url")
}; |
et je trouve que la ligne :
1 2
|
from layer in configuration.Descendants("map").Elements("layer") |
est franchement pas top. L'idéal je pense dans mon cas serait de pouvoir récupérer tous les éléments de nom "layer" sans avoir à passer par la structure même du XML
j'ai bien tenté :
from layer in configuration.Elements("layer")
et
from layer in configuration.Descendants("layer")
et j'obtiens rien.
une idée de comment on peut faire ça ?
merci d'avance !
Skerdreux.
Partager