我想从以下XML字符串(来自Yahoo地理编码API)返回纬度节点(例如)。
<ResultSet version="1.0">
<Error>0</Error>
<ErrorMessage>No error</ErrorMessage>
<Locale>us_US</Locale>
<Quality>60</Quality>
<Found>1</Found>
<Result>
<quality>87</quality>
<latitude>37.68746446</latitude>
<longitude>-79.6469878</longitude>
<offsetlat>30.895931</offsetlat>
<offsetlon>-80.281192</offsetlon>
<radius>500</radius>
<name></name>
<line1>123 Main Street</line1>
<line2>Greenville, SC 29687</line2>
<line3></line3>
<line4>United States</line4>
<house>123</house>
<street>Main Street</street>
<xstreet></xstreet>
<unittype></unittype>
<unit></unit>
<postal>29687</postal>
<neighborhood></neighborhood>
<city>Greenville</city>
<county>Greenville County</county>
<state>South Carolina</state>
<country>United States</country>
<countrycode>US</countrycode>
<statecode>SC</statecode>
<countycode></countycode>
<uzip>29687</uzip>
<hash>asdfsdfas</hash>
<woeid>127757446454</woeid>
<woetype>11</woetype>
</Result>
</ResultSet>
我已经将此XML成功加载到XElement实例中,但我似乎无法找到将纬度节点(例如)加载到字符串变量中的方法。如果没有节点或节点为空,那么我想获得Null或Nullstring。如果有多个(不会有,只是以防万一),那么返回第一个实例。
我认为这很容易,但我无法让它发挥作用。我尝试过的所有Linq查询都返回null。
如果你能用足够的细节来解释它,我就可以获得错误节点。我只提到它,因为它处于不同的水平。
感谢。
赛斯
答案 0 :(得分:3)
获取纬度值:
var latitudeElement = resultXML.Descendants("latitude").FirstOrDefault();
string latitude = latitudeElement == null ? String.Empty : latitudeElement.Value;
你可以使用以下内容获取Error元素:
var errorElement = resultXML.Descendants("Error").First();
我正在使用resultXML
作为对已解析XML的引用。
答案 1 :(得分:1)