【发布时间】:2011-10-07 09:14:46
【问题描述】:
我正在尝试从 Web 读取 xml 文件并使用 XDocument 将其解析出来。它通常工作正常,但有时它会给我一天的这个错误:
**' ', hexadecimal value 0x1F, is an invalid character. Line 1, position 1**
我尝试了 Google 的一些解决方案,但它们不适用于 VS 2010 Express Windows Phone 7。
有一个解决方案将 0x1F 字符替换为 string.empty 但我的代码返回一个没有替换方法的流。
s = s.Replace(Convert.ToString((byte)0x1F), string.Empty);
这是我的代码:
void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
using (var reader = new StreamReader(e.Result))
{
int[] counter = { 1 };
string s = reader.ReadToEnd();
Stream str = e.Result;
// s = s.Replace(Convert.ToString((byte)0x1F), string.Empty);
// byte[] str = Convert.FromBase64String(s);
// Stream memStream = new MemoryStream(str);
str.Position = 0;
XDocument xdoc = XDocument.Load(str);
var data = from query in xdoc.Descendants("user")
select new mobion
{
index = counter[0]++,
avlink = (string)query.Element("user_info").Element("avlink"),
nickname = (string)query.Element("user_info").Element("nickname"),
track = (string)query.Element("track"),
artist = (string)query.Element("artist"),
};
listBox.ItemsSource = data;
}
}
【问题讨论】:
-
能否请您也尝试发布 XML 内容?
-
我试过这个但没有用,仍然报错: s = s.Replace(Convert.ToString((byte)0x1F), string.Empty); Stream str = new MemoryStream(UTF8Encoding.UTF8.GetBytes(s));
-
这是我尝试读取的 xml 文件:music.mobion.vn/api/v1/music/userstop?devid=
标签: encoding linq-to-xml windows-phone