Привет, я пытаюсь сделать свое первое приложение для Windows Phone 7. Это включает в себя запрос сервера о полетной информации. Затем получение XML-документа. Затем я хочу создать серию объектов на основе XML, который я получаю. Однако существует проблема, так как значения объекта являются пустыми.
Мой код
private void SearchButton_Click(object sender, RoutedEventArgs e)
{
getResults("http://test.com/");
}
public void getResults(string websiteURL)
{
WebClient c = new WebClient();
c.DownloadStringAsync(new Uri(websiteURL));
c.DownloadStringCompleted += new DownloadStringCompletedEventHandler(c_DownloadStringCompleted);
}
void c_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
lock (this)
{
string s = e.Result;
XmlReader r = XmlReader.Create(new MemoryStream(System.Text.UnicodeEncoding.Unicode.GetBytes(s)));
// So something with the XML we get back
XDocument data = XDocument.Load(r);
var ns = data.Root.GetDefaultNamespace();
var flights = from query in data.Descendants(ns+"Flight")
select new Flight
{
AircraftType = (int)query.Element(ns + "AircraftType"),
ArrivalTerminal = (int)query.Element(ns + "ArrivalTerminal"),
Carrier = (string)query.Element(ns + "Carrier"),
DepartureTerminal = (int)query.Element(ns + "DepartureTerminal"),
Duration = (string)query.Element(ns + "Duration"),
EndDateTime = (string)query.Element(ns + "EndDateTime"),
EndPoint = (string)query.Element(ns + "EndPoint"),
FlightIndexNo = (int)query.Element(ns + "FlightIndexNo"),
FlightNo = (int)query.Element(ns + "FlightNo"),
NumStops = (int)query.Element(ns + "NumStops"),
OperatedBy = (string)query.Element(ns + "OperatedBy"),
StartDateTime = (string)query.Element(ns + "StartDateTime"),
StartPoint = (string)query.Element(ns + "StartPoint")
};
//checking if anything is there.
string result ="";
foreach (Flight i in flights)
{
result += i.Carrier;
}
resultsBlock.Text = result;
}
}
public class Flight
{
public int aircraftType;
public int arrivalTerminal;
public string carrier;
public int departureTerminal;
public string duration;
public string endDateTime;
public string endPoint;
public int flightIndexNo;
public int flightNo;
public int numStops;
public string operatedBy;
public string startDateTime;
public string startPoint;
//Getter and setters
и секция XML, которую я хочу, выглядит следующим образом. Это также первое использование тега Flight в XML. Добавлено начало XML-файла длиной в сотни строк, так что не будет, но все закончится. Метка Полета, которую я хочу, сгорела там.
<FindFlightsResponse xmlns="urn:webjet.com.au" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<DisplayMessage i:nil="true" />
<OutboundFlightInfo>
...
<Flight>
<AircraftType>734</AircraftType>
<ArrivalTerminal>3</ArrivalTerminal>
<Carrier>QF</Carrier>
<DepartureTerminal>1</DepartureTerminal>
<Duration>PT1H25M</Duration>
<EndDateTime>2011-04-20T07:25:00</EndDateTime>
<EndPoint>SYD</EndPoint>
<FlightIndexNo>1</FlightIndexNo>
<FlightNo>400</FlightNo>
<NumStops>0</NumStops>
<OperatedBy>QF</OperatedBy>
<StartDateTime>2011-04-20T06:00:00</StartDateTime>
<StartPoint>MEL</StartPoint>
</Flight>
Я, вероятно, совершил простую ошибку.
Вся помощь приветствуется.
Благодарю.
отредактируйте im теперь, получая ошибку передачи метода. Я изменил дату и время на строку для простоты