我是Windows手机开发的新手,目前我遇到了一个问题。我正在为Windows Phone应用程序使用RESTful服务,我正在以下面显示的格式成功获得响应
<StationsResp xmlns="http://www.wmata.com" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Stations>
<Station>
<Code>A03</Code>
<Lat>38.9095980575</Lat>
<LineCode1>RD</LineCode1>
<LineCode2 i:nil="true" />
<LineCode3 i:nil="true" />
<LineCode4 i:nil="true" />
<Lon>-77.0434143597</Lon>
<Name>Dupont Circle</Name>
<StationTogether1 />
<StationTogether2 />
</Station>
<Station>
<Code>A02</Code>
<Lat>38.9032019462</Lat>
<LineCode1>RD</LineCode1>
<LineCode2 i:nil="true" />
<LineCode3 i:nil="true" />
<LineCode4 i:nil="true" />
<Lon>-77.0397008272</Lon>
<Name>Farragut North</Name>
<StationTogether1 />
<StationTogether2 />
</Station>
</Stations>
</StationsResp>
我的C#代码在下面调用服务并存储此响应。
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
Uri uri = new Uri("http://api.wmata.com/Rail.svc/Stations?api_key=API_KEY_CODE_OMITTED_INTENTIONALLY");
WebClient webClient = new WebClient();
webClient.DownloadStringCompleted += OnDownloadStringCompleted;
webClient.DownloadStringAsync(uri);
}
void OnDownloadStringCompleted(object sender, DownloadStringCompletedEventArgs args)
{
XElement elm = XElement.Load(args.Result);
var SearchResults = elm.Elements("Station");
}
我的问题在于最后一行。 object'elm'具有根据上面发布的响应的值。但是,当我尝试使用任何方法[如elm.Descendents(),elm.Elements()]查询对象elm时,它不起作用。我的用于Windows Phone的System.Xml.Linq参考版本是2.0.5.0。我错过了别的什么吗?
以下是我收到的确切错误消息。
在观察窗口中,我看到对象榆树中的值。但是LINQ查询elm.Elements(“Station”)错误了。错误消息是“System.Collections.IEnumerator.CurrentCould not not expression”。
非常感谢任何帮助。提前谢谢。