我正在尝试使用WebService来获取荷兰地方的当前天气。
public void GetWeather()
{
net.webservice.GlobalWeather.GlobalWeather GlobalWeatherService = new net.webservice.GlobalWeather.GlobalWeather();
string SoapResult = GlobalWeatherService.GetWeather(Location, "Netherlands");
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.Load(SoapResult);
XmlNodeList XmlForecast = XmlDoc.GetElementsByTagName("CurrentWeather");
}
webservice将XML文件作为字符串
发回 <?xml version="1.0" encoding="utf-16"?>
<CurrentWeather>
<Location>Amsterdam Airport Schiphol, Netherlands (EHAM) 52-18N 004-46E -2M</Location>
<Time>Jun 20, 2011 - 06:25 AM EDT / 2011.06.20 1025 UTC</Time>
<Wind> from the SW (220 degrees) at 9 MPH (8 KT):0</Wind>
<Visibility> greater than 7 mile(s):0</Visibility>
<SkyConditions> partly cloudy</SkyConditions>
<Temperature> 62 F (17 C)</Temperature>
<DewPoint> 51 F (11 C)</DewPoint>
<RelativeHumidity> 67%</RelativeHumidity>
<Pressure> 29.88 in. Hg (1012 hPa)</Pressure>
<Status>Success</Status>
</CurrentWeather>
但是当我尝试在XmlDocument中加载结果时,我在XmlDoc.Load(SoapResult)上得到了ArguementException(路径中的非法字符);
我做错了什么?
答案 0 :(得分:3)
XmlDocument.Load()从指定的URL加载包含要加载的XML文档的文件的XML文档。 URL可以是本地文件,也可以是HTTP URL(Web地址)。
如果filename是零长度字符串,仅包含空格或包含一个或多个无效字符,则抛出ArgumentException。
改为使用LoadXml()。
答案 1 :(得分:1)
XmlDoc.Load
将文件路径作为输入参数,而不是实际的字符串
也许您需要加载此GlobalWeatherService.GetWeather(Location, "Netherlands")
正如Filburt建议使用XmlDoc.LoadXml