这是我要解析的xml:
<xml_api_reply version="1">
<weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0">
<forecast_information>
<city data="London UK"/>
<postal_code data="London UK"/>
<latitude_e6 data=""/>
<longitude_e6 data=""/>
<forecast_date data="2011-12-22"/>
<current_date_time data="2011-12-22 14:50:00 +0000"/>
<unit_system data="US"/>
</forecast_information>
<current_conditions>
<condition data="Partly Cloudy"/>
<temp_f data="54"/>
<temp_c data="12"/>
<humidity data="Humidity: 77%"/>
<icon data="/ig/images/weather/partly_cloudy.gif"/>
<wind_condition data="Wind: W at 10 mph"/>
</current_conditions>
<forecast_conditions>
<day_of_week data="Thu"/>
<low data="50"/>
<high data="55"/>
<icon data="/ig/images/weather/fog.gif"/>
<condition data="Fog"/>
</forecast_conditions>
<forecast_conditions>
<day_of_week data="Fri"/>
<low data="37"/>
<high data="55"/>
<icon data="/ig/images/weather/chance_of_rain.gif"/>
<condition data="Chance of Rain"/>
</forecast_conditions>
<forecast_conditions>
<day_of_week data="Sat"/>
<low data="45"/>
<high data="48"/>
<icon data="/ig/images/weather/mostly_sunny.gif"/>
<condition data="Mostly Sunny"/>
</forecast_conditions>
<forecast_conditions>
<day_of_week data="Sun"/>
<low data="48"/>
<high data="54"/>
<icon data="/ig/images/weather/fog.gif"/>
<condition data="Fog"/>
</forecast_conditions>
</weather>
</xml_api_reply>
如何正确解析和映射此输出?我有点挣扎。我试过用的是......
Dictionary<string, Dictionary<string, List<String>>> details =
new Dictionary<string, Dictionary<string, List<string>>>();
...映射每个属性数据。
答案 0 :(得分:1)
您可以使用datacontractserializer
直接反序列化和正确匹配xml结构的类,也可以使用XDocument
使用linq2xml并循环遍历XElement
中的每个XDocument
并走过它。
答案 1 :(得分:0)
您需要像提供的xml一样创建类层次结构。例如,类Weather
包含另一个类ForecastInformation
,其中包含字符串字段city
,postal_code
等。另外,ForecastConditions
元素列表中包含Weather
个元素1}}所有温度测量的等级