XML - 标头包含非法字符

时间:2011-06-20 10:48:56

标签: c# xml asp.net-mvc-3

我正在尝试使用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(路径中的非法字符);

我做错了什么?

2 个答案:

答案 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