我从数据库中动态拆分地理位置,例如 38.7890109,0.16608129999997345 到 XML 提要上的经度和纬度,我的代码在正确输入地理位置时工作正常,但是当遇到由客户端错误加载到数据库中的数据时,是一个 IndexOutOfRangeException。当我注释掉 longitude = values[1]; 在没有 IndexOutOfRangeException 的情况下对提要加载进行编码,所以让我相信当它在 geoLoc.Split(',') 上拆分地理位置时,它必须加载的数据是脏的,无法拆分导致问题的地理位置,我附上了下面的代码,非常感谢任何帮助。string geoLoc = prop.AdministrativeFields.AddressFields.Geolocation;string latitude = "";string longitude = "";if (!String.IsNullOrEmpty(geoLoc) && !String.IsNullOrWhiteSpace(geoLoc)){XmlElement lat = doc.CreateElement(String.Empty, "latitude", String.Empty);XmlElement lon = doc.CreateElement(String.Empty, "longitude", String.Empty);string[] values = geoLoc.Split(',');latitude = values[0];longitude = values[1];if (latitude.Length > 0 && longitude.Length > 0){ XmlText lati = doc.CreateTextNode(latitude); XmlText longi = doc.CreateTextNode(longitude); lat.AppendChild(lati); lon.AppendChild(longi); XmlElement coords = doc.CreateElement(String.Empty, "coordinates", String.Empty); address.AppendChild(coords); coords.AppendChild(lat); coords.AppendChild(lon);}}
1 回答
千万里不及你
TA贡献1784条经验 获得超9个赞
您应该string[] values = geoLoc.Split(',');在访问数组元素latitude = values[0];和之前检查该部分longitude = values[1];。
用:
if (values != null && values.Length >= 2)
{
latitude = values[0];
longitude = values[1];
...
}
如果此检查失败,您应该重新加载数据
- 1 回答
- 0 关注
- 131 浏览
添加回答
举报
0/150
提交
取消