Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将全球天气服务的显示更改为rest应用程序_C#_Asp.net_Web Services_Rest - Fatal编程技术网

C# 将全球天气服务的显示更改为rest应用程序

C# 将全球天气服务的显示更改为rest应用程序,c#,asp.net,web-services,rest,C#,Asp.net,Web Services,Rest,我正在使用webservicex网站上的全球天气服务 我有一个表单,用户在其中键入城市,应用程序返回该城市的天气数据 问题是显示的内容非常有趣,我不知道如何更改它 这是我的代码 string url = String.Format("http://www.webservicex.com/globalweather.asmx/GetWeather?CountryName=Slovenia&CityName=" + HttpUtility.UrlEncode(city.Text));

我正在使用webservicex网站上的全球天气服务

我有一个表单,用户在其中键入城市,应用程序返回该城市的天气数据

问题是显示的内容非常有趣,我不知道如何更改它

这是我的代码

 string url = String.Format("http://www.webservicex.com/globalweather.asmx/GetWeather?CountryName=Slovenia&CityName=" + HttpUtility.UrlEncode(city.Text));

        WebClient client = new WebClient();
        display.Text = client.DownloadString(url);
这是在城市中键入时的结果

Vreme: <?xml version="1.0" encoding="utf-16"?> <CurrentWeather> <Location>Maribor /     Slivnica, Slovenia (LJMB) 46-29N 015-41E 265M</Location> <Time>May 20, 2014 - 04:30   PM EDT /   2014.05.20 2030 UTC</Time> <Wind> from the SSW (200 degrees) at 6 MPH (5 KT) (direction variable):0</Wind> <Visibility> greater than 7 mile(s):0</Visibility> <Temperature> 62 F (17 C)</Temperature> <DewPoint> 48 F (9 C)</DewPoint> <RelativeHumidity> 59%</RelativeHumidity> <Pressure> 30.03 in. Hg (1017 hPa)</Pressure> <Status>Success</Status> </CurrentWeather>
Vreme:Maribor/Slivnica,斯洛文尼亚(LJMB)46-29N 015-41E 265M 2014年5月20日-美国东部夏令时下午4:30/2014.05.20 2030 UTC,以6英里/小时(5克拉)的速度从SSW(200度)出发(方向可变):0大于7英里(s):0 62华氏度(17摄氏度)48华氏度(9摄氏度)59%30.03英寸。Hg(1017hpa)成功
你能帮我把这个显示器换成更普通的吗

任何帮助都将不胜感激。谢谢

显示的数据应该是这样的。

位置:斯洛文尼亚马里博尔/斯里夫尼察(LJMB)46-29N 015-41E 265M

温度:62F(17C)

您可以使用
XmlReader
对象解析C#中的XML


我发现
XDocument
是处理XML最简单的方法

通过获取根,然后专门查找元素,就不难获得值

  var doc = XDocument.Parse(xmlstring);  //use .Load if you are pulling an xml file.
  var location = doc.Root.Element("Location").Value;
  var temp = doc.Root.Element("Temperature").Value;
  Console.Write("Location: {0} {1}Temperature: {2}", 
                 location, Environment.NewLine, temp);

@请再看一次帖子。已经编辑好了。忘记输入空格,所以它没有显示所有的部分。因此,它返回XML—您的C#代码必须解析该XML以提取单独的值,并以您想要的样式显示它们。您仍然无法描述所需的输出。你收到的是XML,有无数的XML解析器可以以任何你想要的方式显示数据。@paqogomez我对这有点陌生,所以我不知道如何解析它。我理解这一点,这就是为什么我要求你编辑你的问题,并把它放在你想要的外观中。您希望显示什么数据,如何显示?诸如此类的事,我能这样做吗?字符串url=string.Format(“+HttpUtility.UrlEncode(mesto.Text));var doc=XDocument.Load(url);我需要字符串url=string.Format,它在我的作业中说。它是ASP.NET应用程序,所以我认为Cnsole.Write不起作用。如果我使用label.text来显示它,我会得到对象引用错误OK,我会输出到控制台,因为它很容易。就您的对象引用错误而言,这与您实例化标签有关,而不是解析xml。在您的DotNet Fiddle文件中,这将仅显示city(Maribor)的数据。这就是为什么我需要使用服务链接,所以它将显示我想要的任何城市的数据。这就是为什么我需要使用文本框来输入city和label.text来显示data@user3652303您是正确的,这将只显示一个查询。您需要查询每个城市的全球天气服务(用户输入一个城市,然后点击一个按钮),然后按照我显示的方式解析xml,然后适当地设置标签。@user3652303有什么变化吗?你能做到吗?