gpt4 book ai didi

c# - 需要帮助在 C# 中读取 xml 文件

转载 作者:太空宇宙 更新时间:2023-11-03 11:33:17 26 4
gpt4 key购买 nike

我正在为 Windows Phone 制作一个程序,它将从 xml 文件中获取天气数据并将其显示在屏幕上。但是,我不断收到空值,我不确定自己做错了什么。

示例 XML 文件:http://forecast.weather.gov/MapClick.php?lat=44.52160&lon=-87.98980&FcstType=dwml

这是我的:

try
{
// get the stream containing the response from the async call
streamResult = forecastState.AsyncResponse.GetResponseStream();

// load the XML
XElement xmlWeather = XElement.Load(streamResult);

// find the source element
XElement xmlCurrent = xmlWeather.Descendants("source").First();

// get city and height
xmlCurrent = xmlWeather.Descendants("location").First();
mTempCityName = (string)(xmlCurrent.Element("city"));
mTempHeight = (int)(xmlCurrent.Element("height"));

//Find the forecast time
xmlCurrent = xmlWeather.Descendants("time-layout").First();

//store time of day in array
mTimeOfDay = (string)(xmlCurrent.Attribute("period-name"));

//Find the temperature
xmlCurrent = xmlWeather.Descendants("temperature").First();
mTemp = (int)(xmlCurrent.Element("value"));

//now get the current weather conditions for each time period
xmlCurrent = xmlWeather.Descendants("weather").First();
mDescription = (string)(xmlCurrent.Attribute("weather-summary"));

//now get icon links for weather
xmlCurrent = xmlWeather.Descendants("conditions-icon").First();
mIcon = (string)(xmlCurrent.Attribute("icon-link"));
}

最佳答案

嗯:

  • time-layout 没有名为 period-name 的属性(它有具有该属性的子元素)
  • 温度应该没问题,我想
  • weather 没有 weather-summary 属性 - 它有带有该属性的子元素
  • conditions-icon 没有 icons-link 属性,它有 icons-link 元素

换句话说,对于每一位,您都需要准确查看 XML 包含的内容,然后准确查看您要求的内容,注意区分元素和属性。

请注意,对于您要转换为 int 的值(顺便说一句,它们不需要额外的括号)在这种情况下您应该得到一个异常 - 您显然不能获取实际的空值。是否有可能抛出异常而您没有注意到它?你的 catch block 中有什么?

关于c# - 需要帮助在 C# 中读取 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7101128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com