サーバーから取得したWeb応答は次のように表示されます。いくつかの値を逆シリアル化することができます。しかし、アベイラビリティを配列に変換する方法がわかりません。
<AvailRateChartRS Version="1">
<SoldMessage>sold</SoldMessage>
<RoomTypes>
<RoomType>
<RoomTypeId>1</RoomTypeId>
<SubPropertyId>1</SubPropertyId>
<Name>Villa</Name>
<MaxOccupancy>4</MaxOccupancy>
<BookingRangeAvailable>false</BookingRangeAvailable>
<Availability Id="1" Date="2012-10-16" Available="false" NoOfRoomsAvailable="0" />
<Availability Id="2" Date="2012-10-17" Available="false" NoOfRoomsAvailable="0" />
<Availability Id="3" Date="2012-10-18" Available="false" NoOfRoomsAvailable="0" />
<Availability Id="4" Date="2012-10-19" Available="false" NoOfRoomsAvailable="0" />
<Availability Id="5" Date="2012-10-20" Available="false" NoOfRoomsAvailable="0" />
<Availability Id="6" Date="2012-10-21" Available="false" NoOfRoomsAvailable="0" />
</RoomType>
</RoomTypes>
</AvailRateChartRS>
シリアル化のクラスは今こんな感じです。
namespace Classes
{
[Serializable()]
public class RoomType
{
[XmlElement("RoomTypeId")]
public string RoomTypeId { get; set; }
[XmlElement("SubPropertyId")]
public string SubPropertyId { get; set; }
[XmlElement("Name")]
public string Name { get; set; }
[XmlElement("MaxOccupancy")]
public string MaxOccupancy { get; set; }
[XmlElement("BookingRangeAvailable")]
public string BookingRangeAvailable { get; set; }
[XmlElement("Availability")]
public string Availability { get; set; }
}
[Serializable()]
[System.Xml.Serialization.XmlRoot("AvailRateChartRS")]
public class RoomTypes
{
[XmlArray("RoomTypes")]
[XmlArrayItem("RoomType", typeof(RoomType))]
public RoomType[] RoomType { get; set; }
}
}
正規表現を見つけて、可用性をに入れる必要がありますか?または、簡単な方法はありますか。これはほんの始まりに過ぎません。私はこのような問題をもっと期待しています。Web応答は完全に標準化されておらず、多くの場合、いくつかのワイルドな応答を受け取ります。