今天在处理用户信息的问题,查找到这样一个错误,将如下所示的xml文件读入dataset的时候,因为ussername中含有非法字符导致xml读入dataset抛出异常。异常信息如下:“\a”(十六进制值 0x07)是无效的字符。 行 1,位置 139。XML文件是其他部门提供的接口,没法改动,请问大家如何通过程序解决这个问题啊?dataset读取xml采用的是:ds.ReadXml(source);
<user>
 <username>ǐē菓w</username> 
  <province>天津</province> 
  <city>天津</city> 
  ........... 
<user>

解决方案 »

  1.   

    估计是编码的问题,以前我在做这类数据的时候这样做的,可以参考一下        private void LoadXmlFromWebsite() //从网站获取XML数据并另存为本地xml文件
            {
                string chengj = null;//成绩数据
                try
                {
                    WebClient MyWebClient = new WebClient();
                    MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于对向Internet资源的请求进行身份验证的网络凭据。
                    Byte[] pageData = MyWebClient.DownloadData(TbWebAddress.Text);//从指定网站下载数据
                    chengj = Encoding.Default.GetString(pageData);  //如果获取网站页面采用的是GB2312,则使用这句  
                    Stream myStream;
                    SaveFileDialog saveFileDialog1 = new SaveFileDialog();                saveFileDialog1.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*";
                    saveFileDialog1.FilterIndex = 1;
                    saveFileDialog1.RestoreDirectory = true;                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        if ((myStream = saveFileDialog1.OpenFile()) != null)
                        {
                            using (StreamWriter sw = new StreamWriter(myStream, Encoding.Default))
                             {                     
                                sw.Write(chengj);
                             }
                        }
                    }
                        
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }
                
             }
      

  2.   

    谢谢hzxbl啊,我已经解决了,我把里面的低位字符替换后就可以了,虽然你提供的代码没有解决问题,还是要谢谢您。