[英]How to Deserialize a XML response when the root node is a string in C#
[英]Deserialize XML Response String to C# Class
我知道關於這方面的文章很多,盡管我發現很難理解.NET的這一主題。 我有一個看起來像這樣的XML字符串:
<?xml version="1.0" encoding="UTF-8"?>
<result command="searchhotels" tID="1460064669000001" ip="99.51.186.120" date="2016-04-07 21:31:16" version="2.0" elapsedTime="7.1676669120789">
<currencyShort>USD</currencyShort>
<hotels count="2">
<hotel runno="0" preferred="no" cityname="DUBAI" order="3" hotelid="275975">
<from>292.767
<formatted>292.77</formatted>
</from>
<availability>available</availability>
</hotel>
<hotel runno="1" preferred="yes" cityname="DUBAI" order="3" hotelid="31084">
<from>278.7142
<formatted>278.71</formatted>
</from>
<availability>available</availability>
</hotel>
</hotels>
<successful>TRUE</successful>
</result>
我想根據已閱讀的文檔和帖子將其映射到一個類,但我不知道該如何做或該類應該是什么樣子。 救命? 這是我到目前為止所擁有的...
“響應”是xml字符串...將字符串轉換為類:
XmlSerializer serializer = new XmlSerializer(typeof(TResponse));
using (StringReader reader = new StringReader(response))
{
TResponse deserialized = (TResponse)serializer.Deserialize(reader);
return deserialized;
}
我不知道該類的外觀,我曾嘗試使用在線工具將該響應轉換為C#類,但似乎無濟於事。 那么,此響應的類應該是什么樣的? 以及如何將字符串轉換為此類?
看一下xsd.exe-谷歌瀏覽器-它是一個小實用程序,可用於基於xml生成.net類結構(它將推斷結構)或xsd文件。
有了它,您可以生成一個可以在反序列化代碼中填充的類。
如果只需要生成用於反序列化XML的類,則可以嘗試使用此在線工具Xml2CSharp 。 該快捷方式可能有效。
否則,您將需要從XML生成模式,然后從該模式生成類。 本文清楚地描述了步驟。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.