我正在尝试从Web读取一个XML文件,并使用XDocument解析它。通常它能正常工作,但有时会出现以下错误:
**' ', hexadecimal value 0x1F, is an invalid character. Line 1, position 1**
我在Google上尝试了一些解决方案,但它们都不能用于VS 2010 Express Windows Phone 7。
有一个解决方案是将0x1F字符替换为string.empty,但我的代码返回一个没有replace方法的流。
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;
}
}
s = s.Replace(Convert.ToString((byte)0x1F), string.Empty); Stream str = new MemoryStream(UTF8Encoding.UTF8.GetBytes(s));
- Nghia Nguyen