Probleme de parcours d'un fichier XML
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:
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 :
Code:
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> |
Mon but est de parcourir tous les nœuds <result> et dans ces nœuds, récupérer la valeur de <elevation>.
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