将地理定位拆分为 XML IndexOutOfRangeException 上的经度和纬度

我从数据库中动态拆分地理位置,例如 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);

}

}


HUH函数
浏览 121回答 1
1回答

千万里不及你

您应该string[] values = geoLoc.Split(',');在访问数组元素latitude = values[0];和之前检查该部分longitude = values[1];。用:if (values != null && values.Length >= 2){    latitude = values[0];    longitude = values[1];    ...}如果此检查失败,您应该重新加载数据
打开App,查看更多内容
随时随地看视频慕课网APP