Bonjour à tous,
J'aimerais avoir un petit coup de pouce car je n'arrive pas à parcourir un fichier XML malgré toute les docs et les tutos.
voici mon code :
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
46
47
48
49
50
51 public void Lecture (string elevation){ // Create a request using a URL that can receive a post. WebRequest request = WebRequest.Create(elevation); // Set the Method property of the request to POST. request.Method = "POST"; // Create POST data and convert it to a byte array. string postData = "This is a test that posts this string to a Web server."; byte[] byteArray = Encoding.UTF8.GetBytes(postData); // Set the ContentType property of the WebRequest. request.ContentType = "application/x-www-form-urlencoded"; // Set the ContentLength property of the WebRequest. request.ContentLength = byteArray.Length; // Get the request stream. Stream dataStream = request.GetRequestStream(); // Write the data to the request stream. dataStream.Write(byteArray, 0, byteArray.Length); // Close the Stream object. dataStream.Close(); // Get the response. WebResponse response = request.GetResponse(); // Get the stream containing content returned by the server. dataStream = response.GetResponseStream(); // Open the stream using a StreamReader for easy access. StreamReader reader = new StreamReader(dataStream); // Read the content. responseFromServer = reader.ReadToEnd(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(responseFromServer); XPathNavigator navigatorXml= xmlDoc.CreateNavigator(); XmlNamespaceManager nspXml = new XmlNamespaceManager(navigatorXml.NameTable); nspXml.AddNamespace("bk", "http://www.opengis.net/kml/2.2"); XPathNodeIterator iterator = navigatorXml.Select("/bk:ElevationResponse/bk:Result",nspXml); while (iterator.MoveNext()) { if (iterator.Current.Name == "elevation") { coords[indice].Alt = iterator.Current.Value; indice++; } } // Clean up the streams. reader.Close(); //dataStream.Close(); response.Close(); }
Voici le XML :
Mon but est de parcourir tous les nœuds <result> et dans ces nœuds, récupérer la valeur de <elevation>.
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 <ElevationResponse> <status>OK</status> <result> <location> <lat>45.4504618</lat> <lng>4.3970448</lng> </location> <elevation>492.3283081</elevation> </result> <result> <location> <lat>45.4505122</lat> <lng>4.3970687</lng> </location> <elevation>492.2723083</elevation> </result> <result> <location> <lat>45.4505272</lat> <lng>4.3972034</lng> </location> <elevation>492.0945435</elevation> </result> <result> <location> <lat>45.4504993</lat> <lng>4.3976111</lng> </location> <elevation>491.9577332</elevation> </result> </ElevationResponse>
Je met cette valeur dans une liste d'objet coords[indice].alt
Suite à cela je créé un fichier XML.
Mon problème est le suivant : Je ne rempli pas ma liste avec mes altitudes
Et ceci même lorsque je retire { if (iterator.Current.Name == "elevation") }.
Quelqu'un pourrait-il venir à mon secours.
Merci d'avance.
Cordialement
Partager