我正在尝试访问Bing Maps API的xml响应中的值。我尝试过像var responseXml = xdoc.Root.Element("Response").Element("ResourceSets").Element("ResourceSet").Element("EstimatedTotal").Value;
这样的操作,但却导致了错误。
关于如何解决这个问题的任何想法?
码
private void RequestCompleted(IAsyncResult result)
{
var request = (HttpWebRequest)result.AsyncState;
var response = (HttpWebResponse)request.EndGetResponse(result);
StreamReader stream = new StreamReader(response.GetResponseStream());
try
{
XDocument xdoc = XDocument.Load(stream);
var responseXml = xdoc.Root.Element("Response").Element("ResourceSets").Element("ResourceSet").Element("EstimatedTotal").Value;
}
catch (Exception ex)
{
MessageBox.Show("Error" + ex.Message);
}
}
xml回复
答案 0 :(得分:2)
xdoc.Root
为Element("Response")
,请尝试以下操作:
var responseXml = xdoc.Root.Element("ResourceSets").Element("ResourceSet").Element("EstimatedTotal").Value;
答案 1 :(得分:1)
不知道你问虚拟地球的确切问题,但是你发布了一张xml图片,它并没有让我们更清楚地了解xml。
然而,试试
var responseXml = xdoc.Descendants("ResourceSets");
这应该返回包含一对多“ResourceSet”XElements的可枚举XElements。这些XElements可以通过以下方式查询Lat / Long:
var locations = responseXml.Descendents("GeocodePoint");
foreach (var loci in locations)
{
Console.WriteLine(string.Format("Lat: {0} Long: {1}", loci.Element("Latitude"), loci.Element("Longitude"));
}
在该行使用调试器并使用xDoc对象。它有许多可能有用的属性和方法。