我試着去解析這個XML響應:反序列化在C#中的多個同名的XML元素
<?xml version="1.0" encoding="utf-16"?>
<CurrentWeather>
<Location>BOSTON LOGAN INTERNATIONAL, MA, United States (KBOS) 42-22N 071-01W 54M</Location>
<Time>Feb 11, 2015 - 11:54 AM EST/2015.02.11 1654 UTC</Time>
<Wind> from the N (010 degrees) at 17 MPH (15 KT) gusting to 26 MPH (23 KT):0</Wind>
<Visibility> 2 mile(s):0</Visibility>
<SkyConditions> overcast</SkyConditions>
<Temperature> 19.9 F (-6.7 C)</Temperature>
<Wind>Windchill: 5 F (-15 C):1</Wind>
<DewPoint> 12.9 F (-10.6 C)</DewPoint>
<RelativeHumidity> 73%</RelativeHumidity>
<Pressure> 30.08 in. Hg (1018 hPa)</Pressure>
<Status>Success</Status>
</CurrentWeather>
正如你可以看到「風」元素出現了兩次,這就是讓我很難,因爲我明顯不能容納2個命名相同的變量。
我試着通過編號的元素解決這個問題,我的反序列化類現在看起來是這樣的:
public class CurrentWeather
{
[XmlElement(Order = 1)]
public string Location { get; set; }
[XmlElement(Order = 2)]
public string Time { get; set; }
[XmlElement(Order = 3)]
public string Wind { get; set; }
[XmlElement(Order = 4)]
public string Visibility { get; set; }
[XmlElement(Order = 5)]
public string SkyConditions { get; set; }
[XmlElement(Order = 6)]
public string Temperature { get; set; }
[XmlElement(Order = 7)]
public string WindTemperature { get; set; }
[XmlElement(Order = 8)]
public string DewPoint { get; set; }
[XmlElement(Order = 9)]
public string RelativeHumidity { get; set; }
[XmlElement(Order = 10)]
public string Pressure { get; set; }
[XmlElement(Order = 11)]
public string Status { get; set; }
}
現在的問題仍然.. 它反序列化,直到所有元素第二個「風」正確,並在第二個「風」(包括)後的其他元素是'空' 任何建議?
https://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlarrayattribute%28v=vs.110%29 .aspx – Jodrell 2015-02-11 17:48:07