在 C# 获取 NullReference 中从 xml 中提取数据
Extract data from xml in c# getting NullReference
我目前正在从我得到的 XML 中提取数据,其中以下 link 提供了我得到的响应:http://maps.google.com/maps/api/geocode/xml?address=AT,%20Wien
现在我尝试获取第一个元素的纬度和经度:
string serviceUri = string.Format("http://maps.google.com/maps/api/geocode/xml?address=AT,", location);
XmlDocument doc = new XmlDocument();
XDocument X = XDocument.Load(serviceUri);
var position = X.Element("GeoCodeResponse").Element("result");
var position1= position.Element("geometry").Element("location");
string latitude = position1.Element("lat").Value;
string longitude = position1.Element("lng").Value;
但我似乎误解了那个问题的某些内容,这个问题也在这里得到了回答:C# extracting data from XML
请帮助我进一步理解它,
br
尝试使用
var position = X.Root.Element("result");
如果您在 visual studio 中调试代码,您将看到 X.Element("GeoCodeResponse")
returns 为空。并且您正在尝试对 null 使用 X.Element("")
。您还可以在访问根节点之前检查 null。
解决方法很简单。
如果你像这样拆分语句
var root = X.Element("GeoCodeResponse");
var position = root.Element("result");
你会看到,NPE 是由
抛出的
var position = root.Element("result");
如果您在调试模式下查看 'root' 包含的内容。你会看到,'root' 是 'null'。所以没有元素'GeoCodeResponse'。
它应该像 'GeocodeResponse' 这样命名,你的解决方案有效。
我目前正在从我得到的 XML 中提取数据,其中以下 link 提供了我得到的响应:http://maps.google.com/maps/api/geocode/xml?address=AT,%20Wien
现在我尝试获取第一个元素的纬度和经度:
string serviceUri = string.Format("http://maps.google.com/maps/api/geocode/xml?address=AT,", location);
XmlDocument doc = new XmlDocument();
XDocument X = XDocument.Load(serviceUri);
var position = X.Element("GeoCodeResponse").Element("result");
var position1= position.Element("geometry").Element("location");
string latitude = position1.Element("lat").Value;
string longitude = position1.Element("lng").Value;
但我似乎误解了那个问题的某些内容,这个问题也在这里得到了回答:C# extracting data from XML
请帮助我进一步理解它, br
尝试使用
var position = X.Root.Element("result");
如果您在 visual studio 中调试代码,您将看到 X.Element("GeoCodeResponse")
returns 为空。并且您正在尝试对 null 使用 X.Element("")
。您还可以在访问根节点之前检查 null。
解决方法很简单。
如果你像这样拆分语句
var root = X.Element("GeoCodeResponse");
var position = root.Element("result");
你会看到,NPE 是由
抛出的var position = root.Element("result");
如果您在调试模式下查看 'root' 包含的内容。你会看到,'root' 是 'null'。所以没有元素'GeoCodeResponse'。 它应该像 'GeocodeResponse' 这样命名,你的解决方案有效。