【发布时间】:2016-01-26 19:05:17
【问题描述】:
我想从 http 获取 xml 文件并将其转换为对象。 所以现在我有 2 种方法:一种获取这样的 http 响应体:
var httpClient = new HttpClient();
var op = httpClient.GetStringAsync(uri);
var httpResponseBody = "";
try {
var httpResponse = await httpClient.GetAsync(uri);
httpResponse.EnsureSuccessStatusCode();
httpResponseBody = await httpResponse.Content.ReadAsStringAsync();
return httpResponseBody;
}
...
返回字符串 httpResponseBody。 第二个尝试将字符串中的这个 xml 转换为对象:
res = await task;
var reader = new XmlSerializer(typeof(Schedule));
using (var tr = new MemoryStream(Encoding.UTF8.GetBytes(res)))
{
var schedule = (Schedule)reader.Deserialize(tr);
return schedule;
}
问题是我收到的内容是不同的编码,我不知道如何转换它以使反序列化成为可能。
我得到了这样的东西:
<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ramowka><dzien name=\"PoniedziaÅ\u0082ek\" count=\"2\"/></ramowka>\n
如何去掉 '\n' 和 Å\u0082 (应该是 ł) ?
现在我收到来自reader.Deserialize 的异常:{"<ramowka xmlns=''> was not expected."}
课程安排:
[XmlType(AnonymousType = true)]
[XmlRootAttribute(Namespace = "", IsNullable = false)]
public class Schedule
{
[XmlElementAttribute("ramowka")]
public ScheduleDay[] AuditionDays { get; set; }
}
【问题讨论】:
-
Schedule类是什么样的?
标签: c# xml serialization encoding uwp