日期:2014-05-18  浏览次数:20414 次

复制XML的数据到sql2005中遇到的问题,请高手帮忙啊


我用如下方法复制XML的数据到sql2005中,


    string   xmlFilename;
                        xmlFilename   =   sXMLFile;
                        DataSet   newDataSet   =   new   DataSet();
                       
                        foreach   (     DataTable   t   in   newDataSet.Tables)
                        {
                                t.BeginLoadData();
                        }
                        newDataSet.ReadXml(xmlFilename);
                        foreach   (DataTable   t   in   newDataSet.Tables)
                        {
                                t.EndLoadData();
                               
                        }


现在遇到问题,就是   在数据中有怪字符,就会newDataSet.ReadXml(xmlFilename)的时候抱错,
“   ”(十六进制值   0x1C)是无效的字符。   行   31882,位置   112。

<scaddress> <![CDATA[哈尔滨   ]]> </scaddress>
哈尔后面的这个   就是那个怪字符

XML是如下方法生成的

set   @bcp= 'bcp   "select   row   from   ##B2BXMLTemp   order   by   id   asc "   queryout   " '+@FilePath+ ' "   -c   -S '+@sqlserver+ '     -U '+@UserName   + '   -P '+@PassWord

exec   master..xp_cmdshell   @bcp


请问,   有什么方法可以解决这个问题?不论在导出XML数据的时候屏蔽怪字符,或导入的时候,只要解决这个问题就好,万分感谢

------解决方案--------------------
我只做过sql2000到xml,还没做过这个。关注。。帮顶
------解决方案--------------------
这是这个xml类的规定.不能出现非法字符